F
foto50
Hallo, eine Frage ob jemand eine Möglichkeit in (My)SQL kennt, Mehrfachergebnisse der rechten Tabelle eines LEFT JOIN's gesammelt in einem Feld auszugeben.
Vereinfacht wäre da z.B. die Tabellen:
Code:
tbl_a:
+----+-------+
| id | text |
+----+-------+
| 1 | test1 |
| 2 | test2 |
| 3 | test3 |
+----+-------+
tbl_b:
+----+----------+
| id | tbl_a_id |
+----+----------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 5 | 3 |
| 6 | 1 |
+----+----------+
Mit einem einfachen LEFT JOIN kann ich mir nun die Anzahl der tbl_b.tbl_a_id für jede tbl_a.id ausgeben:
Code:
mysql> SELECT
-> tbl_a.text,
-> COUNT(tbl_b.id) AS id_anzahl
-> FROM
-> tbl_a LEFT JOIN tbl_b ON tbl_b.tbl_a_id = tbl_a.id
-> GROUP BY
-> tbl_a.id;
+-------+-----------+
| text | id_anzahl |
+-------+-----------+
| test1 | 3 |
| test2 | 1 |
| test3 | 2 |
+-------+-----------+
3 rows in set (0.01 sec)
Ideal wäre nun, wenn ich auch gleich noch alle tbl_b.id pro Zeile in einem Feld hätte, welches ich bei einer späteren Abfrage in einem "FIND_IN_SET" verwenden könnte, also ein Ergebnis wie:
Code:
+-------+-----------+------------+
| text | id_anzahl | tbl_b_id's |
+-------+-----------+------------+
| test1 | 3 | 1,2,6 |
| test2 | 1 | 3 |
| test3 | 2 | 4,5 |
+-------+-----------+------------+
Weis jemand, ob so ein Ergebnis überhaupt mit einer einzigen Abfrage möglich ist? Vielen Dank im voraus schon mal für eure Vorschläge!
Zuletzt bearbeitet von einem Moderator: