Ergebnis eines JOINS mit Bedingungen die alle erfüllt sind?

nerddestroyer

Grünschnabel
Servus,

folgendes Problem habe ich:

Ich habe folgende Tabellen:

User-Tabelle:

Id|Vorname|Nachname

Universitäts-Tabelle:

Id|Universitaets_name

Universitäts-Verknüpfungs-Tabelle

user_id|uni_id


Die Universitäts-Verknüpfungs-Tabelle verknüpft immer einen User Datensatz mit einem Universitätsdatensatz (n:m Beziehung).

z.B. steht in der universitäts-verknüpfungs-tabelle drin:

user_id|uni_id

1 2
1 5

Das heißt, der user mit der user_id 1 ist mit der Uni 2 und 5 verknüpft.

Nun möchte ich die User haben, die genau an diesen beiden Universitäten waren. Wie wird das am besten gemacht? Mit einem AND geht's ja nicht.

Hat jemand einen Vorschlag?

Danke für eure Hilfe!
 
Hallo,

eventuell so:

SQL:
select user_id
  from uni_user
 where uni_id IN (2,5) 
 group by user_id 
having COUNT(*) = 2

Bzw auch:
SQL:
select user_id
  from uni_user 
 where uni_id IN (2,5) 
 group by user_id 
 having COUNT(*) = 
    (select COUNT(*) 
       from uni_user
      where id in (2,5))

Markus
 

Neue Beiträge

Zurück