2017-02-17 2 views
0

ich alle möglichen Mitglieder in users Tabelle mit dieser Abfrage bin immer:in nur einer Zeile

 SELECT u.id as id , 
      u.name as name, 
      u.age as age 
     FROM users u 

Offensichtlich die Ergebnisse ist: zu

id  name age 
----------------------- 
21  name1 age1 
22  name2 age2 
23  name3 age3 
24  name4 age4 

Was ich will, ist das Endergebnis unten erhalten:

id_1  name_1 age_1 id_2  name_2 age_2 id_3 name_3 age_3 id_4  name_4 age_4 
-------------------------------------------------------------------------------------------------------- 

    21  name1 age1  22  name2 age2  23  name3 age3  24  name4 age4 

Wie Sie im Endergebnis sehen ich will es zurück in einer Zeile. Ist das möglich? Wenn es möglich ist, kann ich Sie einen Vorschlag wie es zu erreichen? Jede Antwort würde sehr geschätzt werden.

+0

Ziemlich sicher, dass dies ist ein Duplikat http://stackoverflow.com/questions/9788670/select-multiple-rows-in- One-Ergebnis-Zeile –

Antwort

0

Die Anforderung sieht in Datenmanipulation nicht praktisch aus. Aber wenn es ist, was Sie suchen als ein Mittel für die Formatierung ...

SELECT 
    GROUP_CONCAT(if(id = 21, id, NULL)) AS id_1, 
    GROUP_CONCAT(if(id = 21, name, NULL)) AS name_1, 
    GROUP_CONCAT(if(id = 21, age, NULL)) AS age_1, 
    GROUP_CONCAT(if(id = 22, id, NULL)) AS id_2, 
    GROUP_CONCAT(if(id = 22, name, NULL)) AS name_2, 
    GROUP_CONCAT(if(id = 22, age, NULL)) AS age_2, 
    GROUP_CONCAT(if(id = 23, id, NULL)) AS id_3, 
    GROUP_CONCAT(if(id = 23, name, NULL)) AS name_3, 
    GROUP_CONCAT(if(id = 23, age, NULL)) AS age_3, 
    GROUP_CONCAT(if(id = 24, id, NULL)) AS id_4, 
    GROUP_CONCAT(if(id = 24, name, NULL)) AS name_4, 
    GROUP_CONCAT(if(id = 214, age, NULL)) AS age_5 
FROM users 
GROUP BY id 
+0

@ Danke für die Idee –

Verwandte Themen