加入三个表,其中该术语是排除的

时间:2014-05-06 12:56:37

标签: mysql

我有一个涉及3个表的查询。表"项目"包含我想要检索的记录。

3表:
项目

参与者:
ID
project_id(指表1的id)
usertable_id(参见表3)

用户表:
ID
姓氏
user_type("有效"或"无效")

我想检索所有项目(表1),其中参与者(表2)不是user_type ='不活动' (表3)

连接这三个表的正确查询是什么,以便只检索这些项目?

2 个答案:

答案 0 :(得分:0)

select * from projects p 
left join participants ps on ps.project_id = p.id 
left join usertable u on ps.usertable_id = u.id 
where u.user_type <> 'inactive'

答案 1 :(得分:0)

使用where filter过滤

进行简单的连接查询
SELECT p.* 
FROM project p
LEFT JOIN participants pr ON(p.id = pr.project_id)
LEFT JOIN usertable  u ON(u.id=pr.usertable_id )
WHERE u.user_type <> 'inactive'

根据评论进行修改

SELECT p.* 
FROM project p
WHERE NOT EXISTS
(
SELECT 1
 FROM participants pr
JOIN usertable  u ON(u.id=pr.usertable_id )
WHERE u.user_type = 'inactive'
AND  pr.project_id= p.id 
)