Hi,
Angenommen ich habe folgende drei Tabellen, mit welchen ich jeder Person beliebige Eigenschaften zuordnen kann:
-personen,
-eigenschaften,
-zuordnung
Jetzt möchte ich alle Personen, die die Eigenschaften 1,2 und 3 haben. Meine Abfrage sieht im Moment folgendermaßen aus.
Das kann aber doch nicht die Lösung sein. Oder geht man bei einer so normalisierten Struktur wirklich so vor? Ich störe mich besonders an der letzte Zeile.
Also wie muss die Abfrage "richtig" aussehen?
Angenommen ich habe folgende drei Tabellen, mit welchen ich jeder Person beliebige Eigenschaften zuordnen kann:
-personen,
-eigenschaften,
-zuordnung
Jetzt möchte ich alle Personen, die die Eigenschaften 1,2 und 3 haben. Meine Abfrage sieht im Moment folgendermaßen aus.
SQL:
SELECT personen_id FROM zuordnung
WHERE eigenschaften_id IN (1,2,3)
GROUP BY personen_id
HAVING COUNT(*)=3
Das kann aber doch nicht die Lösung sein. Oder geht man bei einer so normalisierten Struktur wirklich so vor? Ich störe mich besonders an der letzte Zeile.
Also wie muss die Abfrage "richtig" aussehen?