Jestem nowy w SQL, używając Microsoft SQL Server Management Studio.Aktualizacja SQL po połączeniu dwóch tabel
Próbuję napisać instrukcję SQL, która wykonuje aktualizację po połączeniu dwóch tabel.
Mam dwie tabele: myTable1
i myTable2
. Oba mają wspólne pole MyID
, które będzie polem, do którego dołączam. myTable1
zawiera kolumnę o nazwie BitToUpdate
. I MyTable2 zawiera kolumnę o nazwie BitToCheck
.
Chcę ustawić BitToUpdate
w myTable1
na 1, gdzie BitToCheck
w myTable2
jest również 1.
Oto co mam:
SELECT M.MyID, BitToUpdate, BitToCheck
INTO #temp_table
FROM myTable1 as T1
LEFT JOIN myTable2 as T2
ON M.MyId = PO.MyId
Więc najpierw próbowałem połączyć dwie tabele myTable1
i myTable2
na ich identyfikatory i zapisać wynik w tabeli tymczasowej.
Następnie chcę zaktualizować BitToUpdate
być 1, gdzie BitToCheck
to 1.
Więc to zrobić w tabeli tymczasowej, mam:
UPDATE #temp_table
SET
`BitToUpdate` = 1
WHERE
`BitToCheck` = 1
ten aktualizuje BitToUpdate
powodzeniem w #temp_table . Jednak gdy wybiorę opcję myTable1
, stwierdzam, że BitToUpdate
nie została zmieniona. Przypuszczam, że ma to sens, ponieważ #temp_table nie jest tak naprawdę "wskaźnikiem" ...
Ale jaki byłby właściwy sposób podejścia do tego sprzężenia i aktualizacji?
to jest złe, zajrzyj do tego http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query Kolejność to: Update -> JOIN -> SET – Hendyanto
W przypadku, gdy ktoś się tym przejmuje: powyższe zapytanie nie jest błędne. W MS SQL możesz wykonać UPDATE -> JOIN -> SET lub UPDATE -> SET -> FROM -> JOIN ... lub nawet UPDATE -> SET -> FROM -> WHERE .. . –