Probleme mit Abfrage (GROUP BY) [MySQL 5.0.11]

saebelzahntiger

Grünschnabel
Hallo,
ich habe eine Tabelle mit mehreren Spalten. In der Tabelle habe ich unter anderem die Spalten 'gast' und 'trinken'. Mögliche Einträge (auf die beiden Spalten beschränkt) sehen so aus
gast | trinken
------------------
1 | 3
2 | 7
8 | 5
2 | 3
9 | 11
1 | 1

Ich hätte jetzt gerne eine Ausgabe in der Form:
1 | [1, 3]
2 | [3, 7]
8 | 5
9 | 11

Eine Abfrage mit
Code:
SELECT * FROM tabelle GROUP BY gast, trinken
liefert mir die Gäste-IDs in aufsteigender Reihenfolge und ich kann mit PHP jedem Gast seine Getränke zuordnen. Was folgendes ergibt:
$array = (
array( 1, array( 1, 3) ),
array( 2, array( 3, 7 ) ),
..............
.............
)
Nun würde ich mir diesen Schritt gerne ersparen und ein ähnliches Array direkt bei der Abfrage erhalten. Ich habe allerdings hierzu keine Idee und weiß auch nicht, ob dies überhaupt möglich ist.

Viele Grüße
 
group_concat() hilft dir da weiter

SQL:
select gast, group_concat(trinken ORDER BY trinken ASC SEPARATOR ',')
from TABLE1
group by gast

Das ergibt einen String mit Kommatrennung. Diesen kannst du dann in PHP mit explode() in einen Array wandeln.

Leider habe ich auf die schnelle nicht herausgefunden, ab welcher MySQL-Version der group_concat() vorhanden ist. Probier es einfach mal aus.
 

Neue Beiträge

Zurück