0

私は次のことをしようとしています...

タスク、ユーザー、およびテーブル task_user というテーブルを備えた PHPmyadmin データベースがあります。たとえば、2013 年 1 月 1 日からのすべてのタスクを取得したいのですが、タスクには複数のユーザーを含めることができます。次のような 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"

これは 1 人のユーザーのみを返します。このユーザーはこの日に 2 つのタスクを持っていますが、1 つのタスクしか表示しません。

このクエリを取得して、すべてのユーザーにすべてのタスクを提供するにはどうすればよいですか? (タスクがある場合、そうでない場合はnullを返します)または、これを達成するためのより良い方法を知っている人はいますか?

他の JOIN や GroupBy が必要かもしれないと思いますか?

すべての助けに感謝します!

4

1 に答える 1

0

INNER 結合の代わりに LEFT または RIGHT 結合を使用します。内部結合は、レコードが両方/すべてのテーブルで見つかった場合にのみレコードを返します

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 に答える