Franz: SQL: Spalte in Zeile zusammenfassen

Hallo Leute,

vielleicht kann mir jemand helfen. Ich suche ein MySQL-SELECT-Statement, mit dem man alle Werte aus einer Tabellenspalte in einen Kommaseperierten String umwandeln kann.

Beispiel-Tabelle:

"name","course"

"franz","english für anfänger"
"franz","spanish für fortgeschrittene"
"julia","english für fortgeschrittene"
...

Das SELECT Statement soll für einen bestimmten namen z.B. Franz
alle Einträge unter "course" zu einer Zeile zusammenfassen:

SELECT ???

=> "franz","english für anfänger, spanish für fortgeschrittene"
=> "julia","english für fortgeschrittene"
...

  1. Hallo,

    dazu braucht Du ziemlich komplexe Subselects, dürfte meiner Meinung nach in MySql schwer werden.

    Gruß Jan

  2. hi,

    vielleicht kann mir jemand helfen. Ich suche ein MySQL-SELECT-Statement, mit dem man alle Werte aus einer Tabellenspalte in einen Kommaseperierten String umwandeln kann.

    mit mysql alleine kann man nun nicht so viel machen, sondern benutzt es mit anderen sprachen zusammen, zum beispiel sehr beliebt ist php und mysql. deswegen meine frage, mit welcher programmiersprache bettest du den mysql ein. dann wird sich auch dein problem lösen, indem man eine SELECT anweisung ausführt und alle ergebnisse dann in einem string durch die programmiersprache zusammen setzen kann. eine schleife bietet sich da an.

    noch ein tip. wenn ich deine tabellen richtig verstanden habe, dann handelt es sich um eine n:m tabelle. mein rat wäre in diesem falle, drei tabellen zu haben. in der ersten tabelle stehen die personen, in der zweiten tabelle die kurse und in der dritten tabelle wird dann zugeordnet, welche person welchen kurs belegt. das hat mehrere vorteile, zum beispiel wenn sich der name (nachname) einer person oder ein kursname ändert. dann braucht man nur einen eintrag zu ändern.

    Ilja

    1. Hallo Ilja,

      Du hast leider richtig verstanden! Es ist eine n:m Tabelle! Aber ich mache in jedem Fall einen SQL-VIEW, daher kommt am Ende eh nur eine Tabelle bei raus! Ich dachte nur, man kann die Daten z.B. mit der SQL-CONCAT-Anweisung irgendwie schon in der Datenbank zusammenkleben...ohne eine zusätzliche Schleife in PHP!