私はテーブルT1を持っています
ID
1
2
3
およびテーブルT2
ID HISTORY
1 1
1 1
2 1
2 0
T1から、T2に存在しないか、存在するがすべてのレコードが履歴にあるすべてのレコードを選択する必要があります(履歴フラグ= 1)
したがって、これについては私の結果は次のようになります
1
3
これに対する正しいSQLクエリは何ですか?ありがとう
使用してみてくださいnot exists
select *
from t1 t
where not exists
(
select 1
from t2 a
where a.id = t.id
and a.HISTORY <> 1
)
これを試して:
SELECT * from T1
WHERE id not
IN ( SELECT tb1.id FROM( SELECT id FROM T2 WHERE history=0 ) as tb1 )