我有一个涉及3个表的查询。表"项目"包含我想要检索的记录。
3表:
项目
参与者:
ID
project_id(指表1的id)
usertable_id(参见表3)
用户表:
ID
姓氏
user_type("有效"或"无效")
我想检索所有项目(表1),其中参与者(表2)不是user_type ='不活动' (表3)
连接这三个表的正确查询是什么,以便只检索这些项目?
答案 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
)