这有点棘手,请关注我的要求,我有 2 个表,我想从第一个表中获取第二个表中不存在的数据,并且第一列中的数据对于子 ID 和子 ID 不重复。
示例:我有这张桌子
tab1
id subid childid
1 11 77
2 22 55
3 33 66
4 11 77
7 22 55
8 33 60
9 99 98
10 33 60
11 97 98
tab2
id
1
4
7
10
我想要的第一件事是tab1中的id在tab2中不存在,
2,3,8,9,11
但是其中一些id有重复的subid和chilid所以我必须排除它们因此我应该有id3, 9, 11
我试过这个查询,但它也返回了 3 ,9 ,11, 8 ,我不想要 8 如何修复查询?
select *
from tab1 a
where not exists (select 1 from tab2 b where a.id = b.id)
and a.sub_id in (select c.sub_id
from tab1 c
group by c.sub_id,c.evt_id
having count(1) = 1)