我的SQL技能几乎没有。在环顾四周寻找这个问题后,我需要一些帮助。
我有2张表格如下
Table1 Table2
ID | Name Status_id
----------- ----------
1 | Open 1
2 | Closed 2
3 | On-Hold 1
我想要做的是计算表2中的status_id并按status_id进行分组。然后在第一列中添加ID匹配的名称。
目前我所拥有的是
SELECT status_id, COUNT(*) AS 'num' FROM table2 GROUP BY status_id
到目前为止这很好并且返回
1 | 2
2 | 1
我需要返回的是
Open | 2
Closed | 1
我希望这很清楚。有人可以帮忙吗?
非常感谢!
答案 0 :(得分:2)
SELECT a.name, COUNT(*) AS num FROM table2 b
INNER JOIN table1 a
ON b.status_id=a.id
GROUP BY status_id
答案 1 :(得分:1)
如果你想要保持零暂停,你需要进行左连接并从table2而不是*
计算一列
SELECT t1.name,
Count(t2.Status_id) AS num
FROM table1 t1
LEFT JOIN table2 t2
ON t1.id = t2.Status_id
GROUP BY t1.name;