MYSQL。私のテーブルを紹介しましょう。
users行のあるテーブルがありますid。
tasks行idと。を含むテーブルがありますtitle。
行(users.idの場合)と( tasks.idの場合)users_tasksの両方を接続するテーブルがあります。iduidtid
ここで、すべてのタスクのリストに加えて、idを持つユーザーが6そのタスクに割り当てられている場合の情報(=にエントリがusers_tasks存在する場合はuid= 6)が必要です。
最初は簡単です。すべてのタスクを取得します。SELECT * FROM tasksしかし、今は何ですか?LEFT JOINを続行しようとしましたusers_tasksが、結果が奇妙すぎて正しい方向に見えませんでした...条件付き結合のようなものが必要ですか?よくわかりません
私の好ましい結果は次のようになります(4つのタスクがあり、ユーザー6が1と3に割り当てられていると仮定します)。
tasktitle | entry for user 6
-----------------------------
task 1 | 1
task 2 | 0
task 3 | 1
task 4 | 0
墓へのコメントのために編集:
SELECT
*, EXISTS (SELECT 1 FROM users_tasks ut WHERE tasks.id = ut.tid AND ut.uid = 6)
FROM
tasks