yo,
Die oben genannte Tabelle verbindet die Tabelle rights mit groups, mit rightid und groupid perspektivisch.
also eine typische n:m beziehungstabelle.
In meinem Beispiel ist rightid 2 mit groupid 1 und groupid 2 verbunden.
Nun möchte ich mit einem Query die rightid herausfinden, bei der die groupid 2 NUR EINE rightid verbindet.
du erklärst viel zu kompliziert und darin liegt das problem. die richtige abfrage dafür zu finden ist letzlich sehr leicht. wenn ich dich richtig verstanden habe, willst du von groupid 2 alle rights haben, die ihr alleine zugeordnet sind. hilfreich ist es immer sinnvolle beispiele zu geben, also warum zum beispiel der eine fall nicht trifft, aber vor allem auch ein beispiel, warum es trifft.
SELECT up.*
FROM user_permissions up
WHERE up.groupid = 2
AND NOT EXISTS (SELECT NULL
FROM user_permissions up2
WHERE up2.rightid = up.rightid
AND up2.groupid <> up.groupid
)
;
Ilja