私は SQL Server にかなり慣れていませんが、まだいくつかの取引のコツを学んでいます。私に教えてくれた他の人は、その週は仕事をしていません。通常、最初に彼のステートメントを実行してから実行します。
私がやろうとしているのは、この選択ステートメントで返されるすべてのものを削除することです:
SELECT * from LOCATIONS a Join CONTACTS b on a.location_ID = b.Location_ID
join CONTACTS_SOURCES c on b.contact_ID = c.Contact_ID where c.Source_ID = 10014918
CONTACTS テーブルと LOCATIONS テーブルの両方から、このステートメントが返すものを削除する必要があります。これを行う場合、どのルートを取るのが最適なルートでしょうか?
ルート A:
delete from LOCATIONS a
Join CONTACTS b
on a.location_ID = b.Location_ID
join CONTACTS_SOURCES c
on b.contact_ID = c.Contact_ID where c.Source_ID = 10014918
またはBルート。
DELETE from LOCATIONS where (SELECT * from LOCATIONS a
Join CONTACTS b
on a.location_ID = b.Location_ID
join CONTACTS_SOURCES c
on b.contact_ID = c.Contact_ID where c.Source_ID = 10014918)
DELETE FROM CONTACTS where (SELECT * from LOCATIONS a
Join CONTACTS b
on a.location_ID = b.Location_ID
join CONTACTS_SOURCES c
on b.contact_ID = c.Contact_ID where c.Source_ID = 10014918)
ルート A. は LOCATIONS および CONTACTS テーブルから削除されない気がします。