MySQL: Ergebnis in einer Zeile angeben.

DenisCGN

Mitglied
Hallo,

ich versuche mich gerade an einer MySQL SELECT Abfrage:

Code:
SELECT DISTINCT
`profile`.profileID,
`profile`.`name`,
`profile`.plz,
`profile`.city,
instruments.instrument,
genre.genre
FROM
`profile`
INNER JOIN profilegenre ON `profile`.profileID = profilegenre.profileID
INNER JOIN profileinstruments ON `profile`.profileID = profileinstruments.profileID
INNER JOIN genre ON genre.genreID = profilegenre.genreID
INNER JOIN instruments ON instruments.instrumentID = profileinstruments.instrumentID
ORDER BY
`profile`.plz ASC

Das ergebnis ist wie auf dem Bild.

In meiner Abfrage wird für Bass, Gitarre, rock und HipHop je eine Zeile ausgegeben.

Wie kann ich es erreichen, daß das Ergebnis wie folgt aussieht:

Tommy Lee - 10655 - Berlin - Bass, Gitarre - Rock, HipHop

Danke
derDenis
 

Anhänge

  • SQL.jpg
    SQL.jpg
    34,2 KB · Aufrufe: 27
Mit einem GROUP BY auf alle gemeinsaen Felder. Für die Felder mit den verschiedenen Werten die du zusammenfasen willst, nimmst du den Befehle CONCAT_WS()
 
Das habe ich beides schon versucht. Funktioniert aber nicht.

Dann werden die anderen Angeben nicht mit angegeben.


Tommy Lee - 10655 - Berlin - Bass - Rock

gewünscht ist allerdings.

Tommy Lee - 10655 - Berlin - Bass, Gitarre - Rock, HipHop

Quasi eine Auflistung in der Auflistung.

Grüße
derDenis
 
Dann zeig mal dein Versuch mit CONCAT_WS. Ich bin fast sicher dass du da was falsch machst.

Nachtrag: Mein Fehler. Du solltes GROUP_CONCAT() verwenden, nicht CONCAT_WS()
 
Das klappt leider auch nicht.

Code:
SELECT
`profile`.profileID,
`profile`.`name`,
`profile`.plz,
`profile`.city,
GROUP_CONCAT(genre.genre),
GROUP_CONCAT(instrument.instrument)
FROM
`profile`
INNER JOIN profilegenre ON `profile`.profileID = profilegenre.profileID
INNER JOIN profileinstruments ON `profile`.profileID = profileinstruments.profileID
INNER JOIN genre ON genre.genreID = profilegenre.genreID
INNER JOIN instrument ON instrument.instrumentID = profileinstruments.instrumentID
ORDER BY
`profile`.plz ASC

Jetzt bekomme ich nur noch 1 Zeile und die Instrumente und Musikrichtungen doppelt :-(

Grüße
derDenis
 

Anhänge

  • Group_Concat1.jpg
    Group_Concat1.jpg
    102,2 KB · Aufrufe: 20
  • Group_Concat2.jpg
    Group_Concat2.jpg
    80,1 KB · Aufrufe: 11

Neue Beiträge

Zurück