Schnickelfritz: Mysql: Genau ein Ergebnis pro Master-Datensatz

Ausgangssituation:
tabelle Master = id(int PK), titel(varchar)
tabelle Slave = id(int PK), fk_Master(int), alternativtitel(varchar)

Beispieldaten Master:
id | titel
---+-----------
 1 | Schnickel
 2 | Fritz
 3 | Heinz
 4 | Otto

Beispieldaten Slave:
id | fk_Master | alternativtitel
---+-----------+-----------------------------------
 1 | 2         | Fritz - Der kleine Idiot
 2 | 2         | Fritz - Er kann es nicht lassen
 3 | 3         | Heinz seine erste Grammatikstunde
 4 | 4         | Otto Teil 1
 5 | 4         | Otto ist von hinten wie von vorn

Left Loin:
SELECT m.id,m.titel,s.alternativtitel FROM Master m LEFT JOIN Slave s ON m.id=s.fk_Master

Ergebnis:
m.id | m.titel   | s.alternativtitel
-----+-----------+-----------------------------------
 1   | Schnickel | NULL
 2   | Fritz     | Fritz - Der kleine Idiot
 2   | Fritz     | Fritz - Er kann es nicht lassen
 3   | Heinz     | Heinz seine erste Grammatikstunde
 4   | Otto      | Otto Teil 1
 4   | Otto      | Otto ist von hinten wie von vorn

Will ich aber nicht. Ich will nur ein Ergebnis pro Master-Datensatz mit "zusammengefassten" Slave-Datensätzen, also in etwa:
id   | titel     | alternativtitelgesammeltmittrenner
-----+-----------+------------------------------------------------------------------
 1   | Schnickel | NULL
 2   | Fritz     | Fritz - Der kleine Idiot[trenner]Fritz - Er kann es nicht lassen
 3   | Heinz     | Heinz seine erste Grammatikstunde
 4   | Otto      | Otto Teil 1[trenner]Otto ist von hinten wie von vorn

Jemand eine Idee? Bin heute etwas langsam bei dieser Hitze ... (prima Ausrede ...)

  1. Hello,

    mysql?

    siehe group_concat()

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Das war es! Danke!

      Es gab hierzu -- zu group_concat() -- natürlich bereits Einträge im Forum, was bedeutet, dass mein "Engagement [...] das Problem [...] selbst zu lösen" (siehe Charta) wohl nicht ausreichend groß war. Sorry. Andererseits: wenn man die Vokabel nicht kennt ... (man könnte mir natürlich vorwerfen: "Lern erstmal mysql!" -- naja, blahblah ...)

      Der Vollständigkeit halber: Hier das funktionierende sql-Dings:

      SELECT m.id, m.titel, GROUP_CONCAT(s.alternativtitel SEPARATOR '[trenner]') AS gr_alternativ
      FROM master AS m
      LEFT JOIN slave AS s ON m.id=s.fk_master
      GROUP BY m.id,m.titel

      ergibt:
      id   | titel     | gr_alternativ
      -----+-----------+-----------------------------------------------------
       1   | Schnickel | NULL
       2   | Fritz     | Fritz - Der kleine Idiot[trenner]Fritz - Er kann es nicht lassen
       3   | Heinz     | Heinz seine erste Grammatikstunde
       4   | Otto      | Otto Teil 1[trenner]Otto ist von hinten wie von vorn

      Wow! Was es alles gibt! Super!