Lavorando con MySQL, mi piacerebbe per generare questo SQL:Aggiornamento unito tabella tramite SQLAlchemy ORM utilizzando session.query
UPDATE tableA
INNER JOIN tableB
ON tableA.some_id = tableB.some_id
SET tableA.foo = 1
WHERE tableB.bar IN ('baz','baaz')
Questa è la mia interrogazione SQLAlchemy:
session.query(tableA).join(tableB, tableA.some_id == tableB.some_id) \
.filter(tableB.bar.in_(['baz','baaz']))\
.update({tableA.foo: 1})
Ma l'SQL è genera è questo (un aggiornamento multi-tavolo, senza alcuna condizione di join, che non è quello che voglio):
UPDATE tableA, tableB
SET tableA.foo = 1
WHERE tableB.bar IN ('baz','baaz')
ho provato a cambiare il .j oin in un altro .filter per specificare la condizione di join, che non ha risolto il problema. Come posso forzare questa semplice istruzione di aggiornamento a fare il join corretto?
Hai risolto il problema? Ho qualcosa di quasi identico e sto lottando – Fuxi
Dovevo andare avanti con una soluzione alternativa (due query invece di una). Evita la domanda se stai lottando con lo stesso, forse qualcuno lo vedrà. – ValAyal