我有两个表,第一个包含用户数据,第二个包含用户需要的项目列表。
Select * FROM user
id | name
1 | tom
2 | may
3 | peter
Select * FROM wantedlist
userid | item
1 | pen
1 | bag
3 | pen
我想获取包含用户所需项目数量的表格。 我想要的是什么:
id | name | totalitems
1 | tom | 2
2 | may | 0
3 | peter| 1
我尝试加入两个表来获取表但失败了。 我尝试过的东西:
id | name | totalitems
1 | tom | 2
3 | peter| 1
结果不包含谁没有想要的项目,无论是使用左,右,内连接。有人能告诉我应该用什么吗?
答案 0 :(得分:2)
您需要LEFT JOIN
用户表想要的列表,然后执行GROUP BY
和COUNT
:
SELECT u.id, COUNT(w.item)
FROM user AS u
LEFT JOIN wantedlist AS w ON u.id = w.userid
GROUP BY u.id