Hallo Anton
ims_rgroupuser:
Spalten: group_ID, user_ID, rights_ID
Gibt es einen SELECT der mir die group_IDs für folgende zwei Bedingung holt:
- user X mit user_ID=X und rights_ID=1 ist in der gesuchten Gruppe enthalten
- user Y mit user_ID=Y darf nicht in dieser Gruppe enthalten sein.
Folgendes ungetestetes Statement sollte dies liefern:
SELECT DISTINCT -- Du möchtest die Gruppen ja nur einmal haben
group_ID
FROM ims_rgroupuser
WHERE
user_ID = X -- Deine erste Bedingung
AND
rights_ID = 1 -- Deine zweite Bedingung
AND
group_ID NOT IN ( -- group_id nicht in der Menge
SELECT
g.group_ID -- aller Gruppen
FROM ims_rgroupuser g
WHERE g.user_ID = Y -- in denen sich Benutzer Y befindet
) -- => Deine dritte Bedingung
praktisch die wörtliche Übersetzung Deiner Bedingungen. Dieses Statement ist von den meisten Datenbankmanagementsystemen problemlos ausführbar. Beim weitverbreiteten MySQL werden Subselects jedoch erst ab Version 4.1 unterstützt.
Freundliche Grüße
Vinzenz