我在这里显示了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
你能帮我吗?
答案 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
基本上这个查询joins所有表格。然后,要获取fuel_data
字段,它会应用CONCAT()
和GROUP_CONCAT()
函数