【发布时间】:2016-05-04 08:02:01
【问题描述】:
暂时无法使此查询正常工作:
我有 3 张桌子:
table 1. projects
-> id, name, ....
table 2. members
-> user_id, project_id, ...
table 3. links
-> user_id, project_id, is_binded
我想达到的目标:
从projects获取所有projects.id和projects.name,
但只有与用户耦合的项目 (members.user_id)
AND where is_binded = false(但仅限用户的项目)
或
(这部分我想不通)当不存在包含 user_id、project_id 和 is_binded 列的记录时。因此,当项目和 user_id 尚未在链接表中时。
基本上,查询应该返回来自用户的所有未绑定或链接表中没有记录的项目。
查询出来了:
SELECT p.id, p.name FROM projects p
JOIN links ml ON p.id = ml.project_id
JOIN members m on p.id = m.project_id
WHERE m.user_id = #{u_id}
AND
(ml.is_binded IS NULL OR (ml.is_binded = 0 AND ml.user_id = #{u_id}))
返回不在表中但不是基于用户的项目。当 links 中的记录带有 project_id 和 user_id 时,我不再获得其他 user_id 的列表。 #{u_id} 是我在 ruby 中使用的变量。
我希望我的问题有点清楚!
【问题讨论】:
标签: mysql