Es gibt einen Parameter, den Sie der Abfrage hinzufügen: joinTo.
Hier ist der Eintrag aus der Header-Datei.
/**
* Used to include "joined" data within the query string, you must use the tablename.columnname syntax within a where statement
*
* @param (Class)joinTo the class you would like to pwrform a SQL JOIN with
* @param (NSString*)leftParameter the property name that you would like to use within the local object to match against the target
* @param (NSString*)targetParameter the property within the class you wish to join with that will be matched with the left parameter.
* @return (DBQuery*) this value can be discarded or used to nest queries together to form clear and concise statements.
*/
- (DBQuery*)joinTo:(Class)joinClass leftParameter:(NSString*)leftParameter targetParameter:(NSString*)targetParameter;
Ein Beispiel in einer schnellen und Verknüpfung von zwei Tabellen (Employee & Login) ist unten.
Employee.query().joinTo(Login, leftParameter: "login", targetParameter: "Id")
Offensichtlich kann die Klasse nicht zur Laufzeit geändert werden, so dass Sie die Ergebnisse in dem Dictionary-Objekt finden, joinedResults
Obwohl das, was Sie beschreiben, ist weit mehr mit Beziehungen zu tun, ich an dem einen schlägt vor, Sie hier zu viele Beispiele an:
Relating two objects in DBAccess
So in Ihrem speziellen Fall würden fügen Sie die folgende Methode, um Ihren Beitrag Klasse.
func media -> DBResultSet {
return Media.query().whereWithFormat("post_id = %@", withParameters: [self.post_id]).fetch()
}
Dies wird nachschlagen und die Ergebnisse aus der Medien-Tabelle zurückgeben.
Ich habe ein spezifisches Beispiel zu meiner Antwort unten hinzugefügt, unter Verwendung Ihrer Klassenbeschreibung oben. –