MySQL 组 - 跨 3 个表获取数据

标签 mysql sql join

我有以下表格结构:

汽车

- id
- brand
- location

汽车服务:

- id
- car_id
- service_id

服务

- id
- service_name

我想做的是获取service_name列表,其中包含特定位置出现的汽车数量(按出现情况排序)。

例如 - 我想知道德克萨斯州最重要的汽车服务是什么。

如果我解释的方式变得复杂,我很抱歉 - 如果是这样,我会尽力解释得更好。

提前谢谢您。

最佳答案

据我了解,您想要这样的结果:

service_name | location   | count
-------------+------------+------
service 1    | location 1 |     5
service 2    | location 1 |     4
service 1    | location 2 |     2

这应该通过这样的查询来实现:

SELECT services.service_name, cars.location, count(*) as count
FROM services
JOIN car_services on services.id = car_services.service_id
JOIN cars on cars.id = car_services.car_id
GROUP BY services.service_name, cars.location
ORDER BY count DESC

关于MySQL 组 - 跨 3 个表获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731279/

相关文章:

R:如何使用具有重复值的键连接数据帧,并将第二个帧的值复制到每个重复项?

php - PhalconPHP select_box - 如何使用连接数据作为选项标签?

java - 无法使用 java 从 MySQL 数据库 longblob 列获取 zip 文件

PHP mysql 查询生成器显示我想要的内容

sql - 所有这些 SQL 连接在逻辑上都是等价的吗?

sql - 在 BigQuery 中合并盘中表和 app_events 表上的多个 SELECT FROM?

mysql - MySQL 中是否有 `connect by` 替代方案?

mysql - SQL 搜索未运行

mysql : How to fetch successive numbers

sql - 简单检查 SELECT 查询空结果