1

我在这里显示了 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

请你帮助我好吗?

4

1 回答 1

3

我认为这会给你想要的:

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

基本上这个查询会连接你所有的表。然后为了获得fuel_data它同时应用 theCONCAT()GROUP_CONCAT()函数的字段

于 2012-10-03T18:38:21.570 回答