Ich erzeuge eine Abfrage mit SQL Alchemie Teil für Teil. Ich habe dieses Objekt, das sehr gut für eine Abfrage mit nur einem Join funktioniert:Abfrage mehrere Joins sqlalchemy
** Ich habe ein ORM-Modell, aber ich kann nicht verwenden Primärschlüssel Seted, weil nicht real sind.
q = select(self.selectObj._select
).select_from(
self.joinObj._join
).where(
and_(*self.whereObj._where)
).group_by(
*self.selectObj._groupby
).order_by(
self.selectObj._orderby
).limit(
self.selectObj._limit
).having(
self.selectObj._having
)
ich diese Methode haben für erzeugen die Verbindungen:
def get_joins(self, first, leftTable, rightTable, leftTableColumn, rightTableColumn, outer):
if first:
self._join = join(leftTable, rightTable, leftTableColumn == rightTableColumn, full=outer)
first = False
else:
self._join = self._join + join(leftTable, rightTable, leftTableColumn == rightTableColumn, full=outer)
Ich weiß es nicht, wie kann ich generieren, verketten, erhalten sie, etc zwei oder mehr schließt sich für sie in der select_from Klausel Gebrauch . Irgendeine Idee?
Vielen Dank im Voraus :)
Das Endergebnis wie dies in dem von sein sollte:
SELECT a.dev, b.asha, c.unk
FROM a
FULL OUTER JOIN b ON a.dev = b.devicb
FULL OUTER JOIN c ON a.dev = c.devicc
WHERE
a.cust = 'SNTC' AND
b.cust = 'SNTC' AND
c.cust = 'SNTC' AND
a.invent = '10' AND
b.invent = '10' AND
c.invent = '10'
Streng genommen Sie nicht ORM-Modelle ohne Primärschlüssel haben können, seien sie real oder nicht. Es scheint, dass Sie den Kern verwenden. –
Ja, ich habe Primärschlüssel in ORM, aber nicht korrekt zugeordnet –
@ IljaEverilä korrigiert die Frage, sorry. Was meinst du? Es scheint, du benutzt den Kern. –