当给定特定的用户 ID 时,我试图从我的数据库中选择所有项目和任务。
表格如下:
Users: UserID
Projects: ProjectID, UserID
Tasks: TaskID, ProjectID
我已经尝试过嵌套查询、表连接等,但到目前为止我还不是 SQL 专家,我正在努力获得我需要的东西。我可以从特定的用户 ID 获取所有任务,但是在 ProjectID 上使用内部联接,这意味着它不会返回具有 0 个任务的项目,因为没有任务的项目没有任何可加入的内容。
您需要用于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 = ?
这将返回所有用户,无论他们在projects
ortasks
表中是否有记录。