[MySQL] Concat-Befehl über mehrere Datensätze?

ThompB

Grünschnabel
Hallo liebe Leute!

Ich hätte da eine Frage zum zusammenfassen von Strings in einer SELECT Abfrage, und zwar habe ich 3 Tabellen: "user" "product" & "order"

Wählt ein User ein Product aus, wird es in die Beziehungstabelle Order geschrieben mit den Werten "userid" "productid" "size" und "quantity".

ich würde gerne eine Tabelle ausgeben in der "Username, Vorname, Nachname, Kleidung und Gesamtpreis"

Code:
SELECT  nickname, vorname, nachname, CONCAT_WS(' ',title, size) AS Kleidung, SUM(price*quantity) AS Gesamtpreis
FROM `order`, `user`, `products`  
WHERE id = userid
AND order.productid = products.productid
GROUP BY nickname

Leider komme ich mit dieser Abfrage nicht weit genug wie ich es möchte, da mit mal der Gesamtpreis aller Bestellungen ausgegeben werden, jedoch in "Kleidung" nur ein Artikel ausgegeben wird.

Nur ist in der Beziehungstabelle, wenn ein User mehrere Sachen bestellt, für jedes Kleidungsstück ein Datensatz erstellt wird.
Bekommt man es hin, das alle Kleidungsstück aus allen Datensätzen ausgegeben werden?

Danke im Vorraus!

Gruß Thomas
 
Entweder es geht direkt mit GROUP_CONCAT über den CONCAT_WS oder du musst zuerst mit dem CONCAT_WS eine Subquery machen die dann mit GROUP_COCNAT zusammengefasst wird.

SQL:
GROUP_CONCAT(CONCAT_WS(' ',title, size) SEPARATOR ', ') AS Kleidung
 
Zuletzt bearbeitet von einem Moderator:
Zurück