0

私は2つのテーブルを持っています

Emp1
ID | Name
1  | X
2  | Y
3  | Z

Emp2
ID | Salary
1  | 10
2  | 20

IDEmp2 に存在しない Emp1の s を使用せずに表示したいNOT IN

したがって、結果は次のようになります

ID
3

今私がやったことはこれです:

select  e1.ID
from Emp1 e1 left join  Emp2 e2
on e1.ID <> e2.ID 

しかし、私はこれを取得しています:

ID
1
2
3
3

それで、私は何をすべきですか?? 使うことなくNOT IN

4

4 に答える 4

5

以下の条件で試してみてleft joinくださいis null

select e1.id 
from emp1 e1
left join emp2 e2 on e2.id = e1.id
where e2.id is null

またはnot exists以下の条件

select e1.id 
from emp1 e1
where not exists
(
  select 1
  from emp2 e2
  where e2.id = e1.id
)
于 2013-08-16T09:47:39.487 に答える
3

これを使って

select id from emp1
except
select id from emp2;

SQL フィドル

于 2013-08-16T09:50:18.373 に答える
1

これを試して:

SELECT  
    e1.ID
FROM Emp1 e1 LEFT JOIN Emp2 e2 on e1.ID = e2.ID 
WHERE e2.ID IS NOT NULL
于 2013-08-16T09:49:53.120 に答える
1

必要なのは、パラドがすでに言ったことです。これは、他のいくつかの結合とそれらが返す範囲の良い図です。

ここに画像の説明を入力

サラジョグ

于 2013-08-16T09:56:19.350 に答える