2012-10-03 194 views
1

我在這裏4個所示MySQL表:SQL FiddleMySQL的內部連接GROUP_CONCAT

我需要選擇在給定的燃料(典型值)在給定的各站站名,品牌,fuel_type和fual_price,EQ都殼牌柴油和天然燃料站。

我希望將一個站的所有數據放在一行中,這意味着我有1個車站的5種燃料類型/價格。

輸出示例 -

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

你能幫幫我嗎?

回答

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()函數

+0

謝謝,我不知道如何編寫組concat – user1677674