为什么我的内部联接查询不起作用

时间:2016-08-19 21:12:11

标签: php mysql pdo

我的mySql数据库中有两个表名为brand&模型。

我想在medel table中阅读所有品牌名称和模型数量。

这是我自己的查询:

SELECT brand.id, brand.name AS brandName, model.name AS modelName, count(model.id) AS count
FROM carBrand brand
INNER JOIN carModel model ON model.brandId = brand.id

此查询无法返回我想要的内容。它只返回表中所有型号的品牌名称和数量

2 个答案:

答案 0 :(得分:0)

您需要按carBrand表格中的数据进行分组,以获取每个数据

SELECT brand.id, brand.name AS brandName,
       count(model.id) AS count 
FROM carBrand brand 
INNER JOIN carModel model ON model.brandId = brand.id
GROUP BY brand.id, brand.name

汇总函数如count()sum(),...只返回表的一个结果。如果您想要分组结果,则必须对数据进行分组。

MySQL的问题是您的查询确实返回了一些内容。其他数据库引擎只是出错了。

答案 1 :(得分:0)

COUNT()会自动对结果进行分组。分为两个查询 - 一个用于品牌,一个用于模型计数。