MySQL:多个计数与连接

标签 mysql join count

这是我的两个表:

[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/

相关文章:

php - 与 Joomla 的事件 SQL 连接

mysql - 不再能够通过套接字连接到 MySQL

sql - 基于服务日期的 JOIN 表

java - Hibernate 连接两个表

python - 合并相同标签进行计数

php - Laravel 查询,显示一个表中的结果,其 id 不在另一个表中

java - maven无法添加库

sql - 获取 x 列的非重复项,但 y 列的重复项

python - 如何计算特定列中的项目/值在 pandas 数据帧的另一个/其他列中重复的次数?

php 计数函数未在 mysql_fetch_assoc 上显示正确的计数