0

我正在尝试执行以下操作...

我有一个带有表格的 PHPmyadmin 数据库:任务、用户和一个表 task_user。例如我想拥有 2013-01-01 的所有任务,一个任务可以有多个用户。我想用 HTML 制作一个如下所示的表格:

                      Name1       Name2       Name3
Date: 01-01-2013      Task                    Task
                      Task

所以查询应该总是返回用户,不管他们有没有任务。

如果我做这样的事情:

SELECT t.title, u.firstname, u.lastname FROM users as u
INNER JOIN task_user as tu ON tu.uid = u.uid
INNER JOIN tasks as t ON t.taskid = tu.taskid
WHERE t.date = "2013-05-16"

这只返回一个用户,这个用户在这个日期有两个任务,但它也只显示一个任务。

如何获得此查询以向我提供所有用户的所有任务?(如果他们有任务,否则返回 null)或者有人知道更好的方法来实现这一点吗?

我想我可能需要一些其他的 JOIN 或 GroupBy?

所有帮助将不胜感激!

4

1 回答 1

0

使用 LEFT 或 RIGHT 连接而不是 INNER 连接。只有在两个/所有表中都找到记录时,内连接才会返回记录

SELECT t.title, u.firstname, u.lastname FROM users as u
LEFt JOIN task_user as tu ON tu.uid = u.uid
LEFT JOIN tasks as t ON t.taskid = tu.taskid
WHERE t.date = "2013-05-16"
于 2013-05-17T12:11:09.370 回答