这是我的两个表:
[items]
- id - model - location_id -
1 mA 23
2 mA 23
3 mA 23
4 mB 24
5 mB 24
6 mC 25
7 mC 26
[locations]
- id - name -
23 aisle-3
24 aisle-4
25 aisle-5
26 aisle-6
我正尝试在 locations
表中查询位置名称,并返回该位置的项目计数。这是我尝试过但无济于事的事情:
SELECT name, COUNT(item.id)
FROM locations
INNER JOIN items AS item ON (item.location_id = locations.id)
谁能帮我解决这个问题?
最佳答案
您忘记了 GROUP BY
:
SELECT l.*, COUNT(item.id)
FROM locations l
INNER JOIN items AS i
ON i.location_id = l.id
GROUP BY l.id
如果你想得到 COUNT()
即使没有项目分配给那个位置你应该 LEFT JOIN
而不是 INNER JOIN
.
关于MySQL:多个计数与连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33370688/