データベースに2つの大きなテーブルがあります。どちらにも「名前」という列が含まれています。私の目標は、一方のデータベースにはあるがもう一方のデータベースにはない名前を含む行を見つけることです。
結合ステートメントとwhereがあると思いますが、成功するクエリを作成するために2つを組み合わせて使用する方法を理解できません。
提案?
SELECT * FROM TABLE_A WHERE NAME NOT IN
( SELECT NAME FROM TABLE_B )
EXISTSはINよりも高速である可能性があります。SQLのEXISTSとINの違いを参照してください。。
このようにEXISTSを使用できます。両方のアプローチは完全に同じではないため、両方のアプローチを知っておくと便利です。EXISTS量指定子を、SOME、ALL、またはANYに交換できます。私はあなたが何が起こるかを理解できると思います:)
select * from a1 where not exists(select 1 from a2 where name=a1.name);
それらは100%等しくないことに注意してください!SQLには3値論理があります!