J'ai 2 tables (A et B) avec les mêmes clés primaires. Je veux sélectionner toutes les lignes qui sont dans A et pas dans B. La méthode suivante fonctionne :
select * from A where not exists (select * from B where A.pk=B.pk);
Cependant, cela semble assez mauvais (~2 sec sur seulement 100k lignes dans A et 3-10k moins dans B).
Y a-t-il une meilleure façon de procéder ? Peut-être en tant que jointure gauche ?
select * from A left join B on A.x=B.y where B.y is null;
Sur mes données, cela semble fonctionner légèrement plus vite (~10%) mais qu'en est-il en général ?