这里显示了 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()
功能