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