Mysql 从表B中选择具有表A中多个条件的条目
我一直在试图用连接、子查询连接、not exists子句来解决这个问题,但我始终无法找到一个能产生正确结果的查询 表A-主id(与此问题无关) 表B-唯一活动标识+用户标识Mysql 从表B中选择具有表A中多个条件的条目,mysql,database,Mysql,Database,我一直在试图用连接、子查询连接、not exists子句来解决这个问题,但我始终无法找到一个能产生正确结果的查询 表A-主id(与此问题无关) 表B-唯一活动标识+用户标识 campaign_id | user_id | admin ----------------------------- 1 1 1 1 2 0 1 3 0 2 3
campaign_id | user_id | admin
-----------------------------
1 1 1
1 2 0
1 3 0
2 3 0
我需要做的是查找表B的实例,其中用户在表A中不再有与表B中的活动id相对应的条目。表A是主要内容,它们可以有表A中存在于活动中的多个条目。表B是一个成员表,表示他们是活动的成员,以及他们是否是管理员。此外,它们可以在表B中的条目中包含admin,但在表A中没有条目,因此查询必须检查admin=0
在示例条目中,表B中的无效条目是活动id 1,用户id 3使用外部联接,然后在
where
子句中声明外部联接表的用户id
为空:
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
是的,就是这样。我知道我可以用带有两个条件的连接来完成,我想我忘记了用户的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