シナリオ:
TableA と TableB という 2 つのテーブルがあるとします。TableB の主キーは単一の列 (BId) であり、TableA の外部キー列です。
私の状況では、TableB の特定の行にリンクされている TableA のすべての行を削除したいのですが、結合を通じてこれを行うことはできますか? 結合から取り込まれたすべての行を削除しますか?
DELETE FROM TableA
FROM
TableA a
INNER JOIN TableB b
ON b.BId = a.BId
AND [my filter condition]
それとも私はこうすることを強制されるのでしょうか:
DELETE FROM TableA
WHERE
BId IN (SELECT BId FROM TableB WHERE [my filter condition])
私が質問する理由は、大きなテーブルを扱う場合には最初のオプションの方がはるかに効率的であるように思われるからです。
ありがとう!
ベストアンサー1
DELETE TableA
FROM TableA a
INNER JOIN TableB b
ON b.Bid = a.Bid
AND [my filter condition]
動作するはずです