首页 > 解决方案 > SQL group by 通过 id 获取另一个表值

问题描述

我有 2 个表格,这些表格如下:

用户
ID
姓名
汽车
ID
姓名

假设我有这些用户

身份证:1,姓名:Michael,汽车:1

身份证:2,姓名:Danny,汽车:2

身份证:3,姓名:Jennifer,汽车:1

而这些车

身份证:1,姓名:Audi

身份证:2,姓名BMW

我正在尝试获取用户拥有多少每种类型的汽车,所以结果应该是这样的:

汽车 汽车数量
奥迪 2
宝马 1

我正在运行以下命令

SELECT u.car, c.name, COUNT('car count') FROM users u INNER JOIN cars c ON c.id = u.car GROUP BY c.id

这给出了以下结果

汽车 姓名 汽车数量
1 奥迪 2
2 宝马 1

我怎样才能忽略名称列但在汽车列中显示名称(就像我上面提到的那样)?

标签: mysqlsql

解决方案


尝试这个。

SELECT c.name as cars, COUNT('car count') 
FROM users u 
INNER JOIN cars c ON c.id = u.car 
GROUP BY c.id

推荐阅读