MYSQL Doppelte Abfrage

just-click

Erfahrenes Mitglied
Ich habe 3 Tabellen:
Code:
User
---
ID
Name
Code:
Event
---
ID
Name
Code:
Eventlist
---
UID
EID

Ich würde jetzt gerne folgendes ermitteln lassen:
Wenn User 1 sich seine Events auflisten lässt, dann soll ihm auch angezeigt bekommen wieviele andere Teilnehmer am Event teilnehmen.

In PHP löse ich das immer recht aufwendig, ich mach zuerst eine Abfrage an welchen Events er teilnimmt und jedesmal wenn das Event ausgegeben wird, wird eine neue Abfrage erzeugt die zählt wieviele User am Event teilnehmen.
D.h. ich habe bei einem User der an 4 Events teilnimmt immer 5 Abfragen.
Ist es möglich die 5 auf 1 Abfrage zu reduzieren?

Gruß und Danke im Vorraus
 
Ist es möglich die 5 auf 1 Abfrage zu reduzieren?

Ja klar.
SQL:
SELECT `u`.`Name`, 
	`e`.`Name`,
	COUNT(`u2`.`ID`) AS `alle Teilnehmer`,
	GROUP_CONCAT(`u2`.`Name` ORDER BY `u2`.`Name` SEPARATOR ', ') AS `Teilnehmer`
FROM `User` AS `u`
JOIN `Eventlist` AS `r` 	ON `u`.`ID`=`r`.`UID`
JOIN `Event` AS `e` 		ON `r`.`EID`=`e`.`id`
JOIN `Eventlist` AS `r2`	ON `e`.`ID`=`r2`.`EID`
JOIN `User` AS `u2` 		ON `r2`.`UID`=`u2`.`ID`
WHERE `u`.`ID`=1
GROUP BY `e`.`ID`

Muss ich es erklären oder gehts auch so?

Gruß Napofis

PS habs auch mal getestet, die Ausgabe sieht so aus:
Code:
+---------+---------+-----------------+-----------------------------+
| Name    | Name    | alle Teilnehmer | Teilnehmer                  |
+---------+---------+-----------------+-----------------------------+
| Napofis | Event 1 |               2 | Napofis, Tester 1           |
| Napofis | Event 2 |               3 | Napofis, Tester 1, Tester 2 |
| Napofis | Event 3 |               2 | Napofis, Tester 2           |
+---------+---------+-----------------+-----------------------------+
3 rows in set (0.00 sec)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück