Ich habe eine Datenbank mit zwei verschiedenen Tabellen, die erste 'House'
genannt und enthält die folgenden Spalten: id, name, updated_at
. Meine zweite Tabelle heißt 'House_meta'
und enthält die folgenden Spalten: house_id, name, value
. In der Meta-Tabelle habe ich (zum Beispiel) die folgenden Daten: nurSQL: Join mehrere Zeile Wert als Spalten
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
Ich brauche diese Tabellen zu verbinden, so dass jedes Haus Eintrag in einer Zeile ist. Mein Problem ist, die Bilder, sie alle in derselben Zeile sein müssen und möglicherweise wie image1 ausgegeben werden, image2 usw. Mein aktueller 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
Dies ist nur möglich (natürlich) führt nur zu einem der Bilder zu sein hinzugefügt. Wie kann ich das tun, damit alle Bilder auf der einen Zeile landen?
Wie ich will es zurück:
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
wollen Sie in 'pivoting' Konzept aussehen – Rahul