0

特定のユーザー ID を指定すると、データベースからすべてのプロジェクトとタスクを選択しようとしています。

表は次のとおりです。

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

ネストされたクエリ、テーブル結合などを試してみましたが、SQL の専門家ではなく、必要なものを取得するのに苦労しています。特定のユーザー ID からすべてのタスクを取得できますが、ProjectID で内部結合を使用します。つまり、タスクのないプロジェクトには結合するものが何もないため、タスクが 0 のプロジェクトは返されません。

4

1 に答える 1

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 を参照してください

projectsこれにより、またはtasksテーブルにレコードがあるかどうかに関係なく、すべてのユーザーが返されます。

于 2013-01-10T20:17:59.213 に答える