Linuchs: mySQL: 1242: Subquery returns more than 1 row

Moin,

mit SELECT rufe ich eine Menge von Veranstaltungen auf und möchte zu jeder Veranstaltung die dazu 0..n hinterlegten Veranstaltungstypen finden.

Der Subselect löst den Fehler 1242 aus:

SELECT
...
,( SELECT
  typ_id
  FROM    ".$db[0]['termin_typ']." tty1
  WHERE   tty1.termin_id  = trm1.id
 ) typ_ids

Gerne würde ich im Feld typ_ids sowas haben wie 7,12,65

Ich könnte die gesuchten ids mit JOIN anhängen, aber dann habe ich ja den Ursprungssatz dreimal.

Gibt es einen Trick?

Gruß, Linuchs

  1. Tach!

    mit SELECT rufe ich eine Menge von Veranstaltungen auf und möchte zu jeder Veranstaltung die dazu 0..n hinterlegten Veranstaltungstypen finden.

    0..n Ergebnisse können nur auf Tabellenebene weiterverarbeitet werden. In der Select-Klausel (Feldliste) kann generell nur ein Subselect mit einem einzelnen Ergebnis (eine Zeile, eine Spalte) notiert werden.

    Gerne würde ich im Feld typ_ids sowas haben wie 7,12,65

    Dann musst du die Ergebnisse zusammenfügen, beispielsweise mit GROUP_CONCAT().

    dedlfix.