Scénario:
Disons que j'ai deux tables, TableA et TableB. TableB de la clé primaire est une seule colonne (BId), et une colonne de clé étrangère dans TableA.
Dans ma situation, je veux supprimer toutes les lignes dans TableA qui sont liées avec des lignes spécifiques dans la TableB: puis-je le faire à travers les jointures? Supprimer toutes les lignes qui sont extraites dans les jointures?
DELETE FROM TableA
FROM
TableA a
INNER JOIN TableB b
ON b.BId = a.BId
AND [my filter condition]
Ou suis-je obligé de faire ceci:
DELETE FROM TableA
WHERE
BId IN (SELECT BId FROM TableB WHERE [my filter condition])
La raison pour laquelle je demande est, il me semble que la première option serait beaucoup plus efficace lorsque vous traitez avec les plus grandes tables.
Merci!