Ich habe drei Tabellen:Wie verkette ich Zeichenfolgen aus einer Unterabfrage in eine einzelne Zeile in mysql?
table "package"
-----------------------------------------------------
package_id int(10) primary key, auto-increment
package_name varchar(255)
price decimal(10,2)
table "zones"
------------------------------------------------------
zone_id varchar(32) primary key (ex of data: A1, Z2, E3, etc)
table "package_zones"
------------------------------------------------------
package_id int(10)
zone_id varchar(32)
Was ich versuche, für das Paket alle Daten in Paket Tabelle PLUS eine Liste von Zonen zu tun zurückzukehren. Ich möchte die Liste der Zonen alphabetisch sortiert und durch Komma getrennt erhalten.
So ist die Ausgabe, die ich suche ist so etwas wie dieses ...
+------------+---------------+--------+----------------+
| package_id | package_name | price | zone_list |
+------------+---------------+--------+----------------+
| 1 | Red Package | 50.00 | Z1,Z2,Z3 |
| 2 | Blue Package | 75.00 | A2,D4,Z1,Z2 |
| 3 | Green Package | 100.00 | B4,D1,D2,X1,Z1 |
+------------+---------------+--------+----------------+
Ich weiß, dass ich etwas in PHP mit der Präsentationsschicht tun konnte das gewünschte Ergebnis zu erhalten. Das Problem ist, ich würde in der Lage sein, zone_list ASC oder DESC oder sogar "WHERE zone_list LIKE" usw. zu sortieren. Um das zu tun, brauche ich das in MYSQL.
Ich habe keine Ahnung, wie man überhaupt damit anfängt. Ich habe versucht, eine Unterabfrage zu verwenden, aber sie beschwerte sich über mehrere Zeilen. Ich habe versucht, die mehreren Zeilen zu einer einzigen Zeichenfolge zu verbinden, aber offensichtlich mag MySQL das nicht.
Vielen Dank im Voraus.
UPDATE!
Hier ist die Lösung für diejenigen, die interessiert sind.
Verwenden Sie die Gruppe von mit mit group_concat auf Zone Feld –