join mehrere Tabellen auf der gleichen Tabelle mithilfe von query-Klasse

Bin ich mit der Abfrage-Klasse zu erstellen Sie eine Abfrage, die zwei oder drei Tabellen join auf die gleiche Tabelle wie diese:

qbds1 = query.addDataSource(tablenum(Table1));

qbds2 = qbds1.addDataSource(tablenum(Table2));
qbds2.relations(true);

qbds3 = qbds2.addDataSource(tablenum(Table3));
qbds3.relations(true); 

qbds4 = qbds3.addDataSource(tablenum(Table4));
qbds4.relations(true);

qbds5 = qbds3.addDataSource(tablenum(Table5));
qbds5.relations(true);

qbds6 = qbds5.addDataSource(tablenum(Table6));
qbds6.relations(true);
qbds6.joinMode(JoinMode::ExistsJoin);

In diesem Beispiel, das ich versuche zu join-Tabelle4 Tabelle3 und Tabelle5 Tabelle3 aber Es funktioniert nicht wie ich will; ich habe mit dem debugger und bis:

qbds5 = qbds3.addDataSource(tablenum(Table5))

alles ist ok, sobald es führt diese Linie ist die Verbindung zwischen Table4 und Tabelle3 verschwindet und die Verbindung zwischen Table5 und Tabelle3 wird NICHT Hinzugefügt. Die gesendete Abfrage an den SQL-server ist eigentlich 2 Abfragen, eine zwischen Tabelle1, Tabelle2 und Tabelle3 und ein weiteres zwischen table5 und table6 (der link zu table4 nicht vorhanden). Wenn ich ausführen info (query.xml()) am Ende, ich sehe die verbindungen zwischen allen Tabellen, wie ich wollte.

Ist es sogar möglich, mithilfe von query-Klasse?

Es sollte möglich sein, versuchen Sie .relations(false) und erstellen Sie manuell die Beziehungen mit addLink(...)

InformationsquelleAutor Alex | 2015-04-20

Schreibe einen Kommentar