MySQL 内部连接 ​​group_concat

标签 mysql sql group-concat

<分区>

这里显示了 4 个 MySQL 表: SQL Fiddle

我需要为给定集中的每个加油站选择加油站名称、品牌、fuel_type 和 fual_price,以及给定集中的燃料类型,例如所有使用柴油和天然燃料的壳牌加油站。

我想将与一个站相关的所有数据排成一行,这意味着我有例如1 站 5 种燃料类型/价格。

示例输出 -

id | name     | brand | fuel-data
---------------------------------------------------------
1  | Brzotice | Shell | Natural95-37.9, Diesel Power-45.8

你能帮帮我吗?

最佳答案

我想这会给你想要的:

select s.id, 
  s.name,
  b.brand,
  group_concat(concat(f.type, '-', fs.price)) Fuel_Data
from sam_fuel f
left join sam_station_fuel fs
  on f.id = fs.id_fuel
left join sam_station s
  on fs.id_station = s.id
left join sam_station_brand b
  on s.brand = b.id
group by s.id, s.name, b.brand

参见 SQL Fiddle with Demo

基本上这个查询joins你所有的 table 。然后要获取 fuel_data 字段,它同时应用 CONCAT()GROUP_CONCAT()功能

关于MySQL 内部连接 ​​group_concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714560/

相关文章:

python - AppVeyor 上 Python 和 SQL Server 的多种组合

php - 从数据库中获取同一事物的多行

mysql - 仅从数据库中选择那些先前未选择的值

php - 如何根据下拉菜单值显示特定行的数据?

PHP MySQL 将 GROUP_CONCAT 结果视为单独的项目

mysql - 加入前 3 个兴趣领域以及每个用户行

php - 循环遍历一个查询的结果并将其插入到另一个查询中,并联合第二个查询的所有结果

Java - 如何通过仅打印具有相同名称的行来从数据库中打印数据

SQL 词根匹配

php - 计算并连接 MySQL 条目