【问题标题】:MySQL: multiple counts with joinMySQL:加入多个计数
【发布时间】:2015-10-27 14:31:25
【问题描述】:

这是我的两张桌子:

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

谁能帮我解决这个问题?

【问题讨论】:

    标签: mysql join count


    【解决方案1】:

    你忘了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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2014-11-26
      相关资源
      最近更新 更多