我有桌子 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 )