2016-12-02 73 views
0

我有一個帶有兩個不同表格的數據庫,第一個名爲'House',包含以下列:id, name, updated_at。我的第二個表格名爲'House_meta',包括以下列:house_id, name, value。在元表中我有(例如)以下數據:SQL:將多行值作爲列加入

house_ id  name  value 
1    street  123 streetname 
1    color  black 
1    city  chicago 
1    image  image-1.jpg 
1    image  image-2.jpg 
1    image  image-3.jpg 

我需要加入這些表,以便每個房子條目只在一行上。我的問題是圖像,他們都必須在同一行,並可能像圖像1,圖像2,等等。我當前的SQL輸出:

SELECT 
    house.id AS house_id, 
    house.name AS housename, 
    updated_at 
    max(case when house_meta.name = 'street' then house.value end) as street, 
    max(case when house_meta.name = 'color' then house.value end) as color, 
    max(case when house_meta.name = 'city' then house.value end) as city, 
    max(case when house_meta.name = 'image' then house.value end) as image 
FROM house 
    join house_meta on house.id = house_meta.house_id 
group by 
    house.id 

這隻(自然)的結果只作爲一個圖像添加。我怎樣才能做到這一點,以便所有的圖像最終在一行?

我多麼希望它返回:

house_id updated_at street   color city  image1  image2  image3 
1   2016-12-02 123 streetname black chicago image-1.jpg image-2.jpg image-3.jpg 
+0

你想看看'pivoting'概念 – Rahul

回答