【问题标题】:SQL group by get another table value by idSQL group by 通过 id 获取另一个表值
【发布时间】:2021-03-02 09:54:02
【问题描述】:

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

users
id
name
car
cars
id
name

假设我有这些用户

id:1,姓名:Michael,汽车:1

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

id:3,名称:Jennifer,汽车:1

还有这些车

id:1,名称:Audi

id:2,名称BMW

我正在尝试获取用户拥有的每种类型汽车的数量,因此结果应该是这样的:

cars cars count
Audi 2
BMW 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

给出以下结果

cars name cars count
1 Audi 2
2 BMW 1

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

【问题讨论】:

  • 如果你不想要,就不要选择它。
  • 对不起,如果我不清楚,但汽车返回 id,我想显示他们的名字
  • 您已经在选择并显示车名,是说您要显示用户名吗?也许您应该在问题中包含您的预期输出。
  • @Andrew 我希望汽车列显示名称而不是id,因此汽车将是Audi,计数将是2,现在它返回其@987654343 @

标签: mysql sql


【解决方案1】:

试试这个。

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

【讨论】:

  • 正是我需要的:)
【解决方案2】:

试试这个:

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

【讨论】:

  • 正是我需要的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 2020-11-04
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 2018-07-03
  • 2023-03-15
相关资源
最近更新 更多