sql - 计算结果在两个表中

时间:2016-02-16 18:30:55

标签: sql

我有两个表,第一个包含用户数据,第二个包含用户需要的项目列表。

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

结果不包含谁没有想要的项目,无论是使用左,右,内连接。有人能告诉我应该用什么吗?

1 个答案:

答案 0 :(得分:2)

您需要LEFT JOIN用户表想要的列表,然后执行GROUP BYCOUNT

SELECT u.id, COUNT(w.item)
FROM user AS u
LEFT JOIN wantedlist AS w ON u.id = w.userid
GROUP BY u.id

Demo here