选择特定用户标识的所有项目和任务

时间:2013-01-10 20:14:50

标签: mysql sql

我在给定特定用户ID时尝试从我的数据库中选择所有项目和任务。

表格如下:

Users: UserID
Projects: ProjectID, UserID
Tasks: TaskID, ProjectID

我已经尝试过嵌套查询,表连接等等,但到目前为止我还不是SQL专家,而且我很难得到我需要的东西。我可以从特定的用户ID获取所有任务,但是在ProjectID上使用内部联接,这意味着它不会返回具有0个任务作为项目的项目,而没有任何任务无法加入。

1 个答案:

答案 0 :(得分:1)

您需要使用LEFT JOIN来返回数据:

select *
from users u
left join projects p
    on u.userid = p.userid
left join tasks t
    on p.projectid = t.projectid
where u.userid = ?

请参阅SQL Fiddle with Demo

这将返回所有用户,无论他们是否在projectstasks表中都有记录。