MySQL内连接group_concat

时间:2012-10-03 18:26:29

标签: mysql sql group-concat

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

我需要为给定组中的每个站点选择站名,品牌,fuel_type和fual_price,并在给定的组中选择燃料类型,e.q所有带燃料柴油和自然燃料的Shell站。

我想将所有与一个电台相关的数据放在一行,这意味着我有1站的5种燃料类型/价格。

示例输出 -

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

你能帮我吗?

1 个答案:

答案 0 :(得分: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 with Demo

基本上这个查询joins所有表格。然后,要获取fuel_data字段,它会应用CONCAT()GROUP_CONCAT()函数