我有三个表Color
、Shade
和Activity
:
颜色:
id color
--- ------
1 red
2 green
3 white
Shade
id shade
---- -------
1 light
2 dark
事件:
user_id shade_id color_id
------ -------- --------
1 1 1
1 1 2
2 2 3
我正在使用mysql,可以通过特定的色调轻松找到属于用户的颜色:
select c.name, 'assigned'
from color c
left join activity a on c.id = a.color_id
where a.shade_id = 1 and a.user_id = 1;
上面的内容会给我:
Color Status
----- -------
red assigned
green assigned
问题
但是,我想要一个所有颜色的列表,其中已分配
表示属于她的颜色,未分配
表示不属于她的颜色。
所以我想要
Color Status
----- -------
red assigned
green assigned
white not assigned
最佳答案
SELECT Color, B.shade_id Status
FROM Color A LEFT JOIN (SELECT *
FROM Activity WHERE shade_id = 1) B
ON A.id = B.color_id
NULL
表示未分配。
关于mysql - 如何连接两个表并获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830667/