Brauch Hilfe bei einer SQL Aufgabe

  • Themenstarter Themenstarter Stronzoo
  • Beginndatum Beginndatum
S

Stronzoo

Hallo, bräuchte hilfe bei einer SQL-Abfrage

Hab folgende UML-Tabelle:

Person(<PK>email, vorname, nachname, geburtsdatum, geschlecht)
Gruppe(<PK>name, beschreibung, <FK>emailowner)
Photo(<PK>URL, titel, beschreibung, <FK>personemail)
Nachricht(<<PK>id, <FK>vonemail, <FK>anemail, betreff, datum, messagetext)
hatfreund(<FK>email, <FK>emailfreund)
istingruppe(<FK>gruppenname, <FK>email)
istabgebildet(<FK>photourl, <FK>personemail)

Aufgabe:
Geben Sie den Vor- und Nachnamen aller Personen an, die Mitglieder genau einer Gruppe sind.

Für die Aufgabe brauch ich nur die Tabellen Gruppe, Person und istingruppe. Die anderen brauchen nicht beachtet zu werden.

Mein Problem ist es gelingt mir nicht irgendiwe festzustellen, wie oft jemand in einer Gruppe ist. Ich könnte mit count(*) die Anzahl festellen, aber wie leg ich fest das er nur die ausgibt die nur eine Gruppe haben?

Das hab ich mal so hingebastelt:
Select p.vorname, p.nachname, g.name
from person p, gruppe g, istingruppe i
where p.email = (Select count(*) from istingruppe where p.email = i.email) = 1

funktioniert aber nicht...vielleicht weil ich das mit den subqueries noch nicht so richtig drauf habe. Könnte mir da jemand weiterhelfen?
 
PHP:
SELECT
p.*
FROM person p
JOIN ( 
   SELECT email, count(1)
   FROM istingruppe 
   GROUP BY email
   HAVING count(1) = 1
     ) u on u.email = p.email

Jede Person, die nur Mitglied einer Gruppe ist wird ausgegeben.
 
Zurück