MYSQL。让我介绍一下我的表格,缩小:
我有一个users
带有行的表id
。
我有一张桌子tasks
,里面有行id
和title
。
我有一个表users_tasks
,将它们与行id
(uid
对于 users.id)和tid
(对于 tasks.id)连接起来。
现在,我想要一个所有任务的列表以及是否6
已将具有 id 的用户分配给该任务的信息(= 如果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
编辑对 tombom 的评论:
SELECT
*, EXISTS (SELECT 1 FROM users_tasks ut WHERE tasks.id = ut.tid AND ut.uid = 6)
FROM
tasks