Сценарий:
Допустим, у меня есть две таблицы, TableA и TableB. Первичный ключ TableB представляет собой один столбец (BId) и является столбцом внешнего ключа в TableA.
В моей ситуации я хочу удалить все строки в TableA, которые связаны с конкретными строками в TableB: можно ли это сделать с помощью объединений? Удалить все строки, извлеченные из объединений?
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])
Причина, по которой я спрашиваю, заключается в том, что мне кажется, что первый вариант был бы гораздо более эффективным при работе с большими таблицами.
Спасибо!