0

データベースに2つの大きなテーブルがあります。どちらにも「名前」という列が含まれています。私の目標は、一方のデータベースにはあるがもう一方のデータベースにはない名前を含む行を見つけることです。

結合ステートメントとwhereがあると思いますが、成功するクエリを作成するために2つを組み合わせて使用​​する方法を理解できません。

提案?

4

2 に答える 2

5
 SELECT * FROM TABLE_A WHERE NAME NOT IN 
   ( SELECT NAME FROM TABLE_B )
于 2012-07-30T22:10:13.607 に答える
0

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値論理があります!

于 2012-07-30T22:34:58.137 に答える