Chcę zaktualizować tabelę w oświadczeniu, które ma kilka sprzężeń. Chociaż wiem, że kolejność złączeń nie ma większego znaczenia (chyba, że korzystasz z podpowiedzi optymalizatora), zamówiłem je w pewien sposób, aby było najbardziej intuicyjne w czytaniu. Jednak powoduje to, że tabela, którą chcę zaktualizować, nie jest tą, od której zaczynam, i mam problem z jej aktualizacją.Aktualizacja MySql Dołączona tabela
Manekin przykładem tego, co chciałbym zrobić, to coś takiego:
UPDATE b
FROM tableA a
JOIN tableB b
ON a.a_id = b.a_id
JOIN tableC c
ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
AND c.val > 10;
Istnieje wiele wpisów dotyczących aktualizacji z dołącza tu jednak zawsze mają stół aktualizowany jako pierwszy. Wiem, że jest to możliwe w SQL Server i mam nadzieję, że jest to możliwe w MySQL Too!
Musisz wstawić 'SET b.val = a.val + c.val' przed' Z ... '. Zobacz http://stackoverflow.com/questions/2334712/sql-server-update-from-select – Gerben
Ten przykład ma SET po poleceniu, a te przykłady aktualizują pierwszą tabelę w porządku łączenia. Chciałbym zaktualizować tabelę w połowie zamówienia łączenia. – Zugwalt
To nie powinno mieć znaczenia. Nawet gdyby tak było, mógłbyś po prostu zmienić kolejność złączeń (tableB b JOIN tableA a ON a.a_id = b.a_id'). – Gerben