我一直在尝试使用联接,子查询联接,不存在子句来解决这个问题,而我一直未能提出能够产生正确结果的查询。
表A-主要ID(与此问题无关)
id | campaign_id | user_id
--------------------------
1 1 1
2 1 2
3 0 3
4 2 3
5 1 2
表B-唯一的campaign_id + user_id
campaign_id | user_id | admin
-----------------------------
1 1 1
1 2 0
1 3 0
2 3 0
我需要做的是查找表B的实例,其中用户不再在表A中具有与表B中的campaign_id对应的条目。表A是主要内容,并且它们可以具有表A中的多个条目运动。表B是一个成员表,该成员表指示他们是广告系列的成员以及是否是管理员。此外,它们可以在表B中以admin的身份进入,但在表A中没有的条目,因此查询必须检查admin = 0。
在示例条目中,表B中的无效条目将为campaign_id 1,user_id 3
使用where
外部联接,然后在子句中声明外部联接表的user_id
null:
select tblB.*
from tblB
left join tblA
on tblA.campaign_id = tblB.campaign_id
and tblA.user_id = tblB.user_id
where tblB.admin = 0
and tblA.user_id is null
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句