Hi,
also, damit ich dich richtig verstanden habe: user können in mehreren Gruppen sein...?
Wenn ja geht das (meines Wissens und meiner Vorstellungskraft nach) nicht mit 1 Befehl. Ohne PHP (Perl...) geht das nicht.
Du musst erst alle Gruppen ermitteln, wo user X Adminrechte hat.
SELECT group_ID FROM ims_rgroupuser WHERE user_ID=X AND rights_ID=1
Dann nimmst du die Ergebnisse und gehst einzeln alle Ergebnisse durch (mit einer foreach Schleife) und schaust, ob da user Y vorhanden ist.
SELECT * FROM ims_rgroupuser WHERE user_ID=Y AND group_id='Foreachschleifenvariable'
Wenn eine leer Menge zurückgegebn wird weißt du dass in der Gruppe Foreachschleifenvariable user X user Y hinzufügen kann.
Du siehst ziemlich aufwendig und umständlich, weil deine Datenbankstruktur auch halbwegs chaotisch ist ;)
Am besten ist du hast für jede Gruppe eine eigene Tabelle. Dort sind dann die dazugehörigen user mit ihren jewailigen Rechten in dieser Gruppe verzeichnet. Ein weiterer Schritt wäre eine Tabelle für jeden User, wo dann Verweise zu den Gruppen zu finden sind, in der er ist, und auch seine jewailigen Rechte. So könntest du dann einfach per
SELECT group_ID FROM user_x_db WHERE rights_id=1
zum gewünschten Ergebnis kommen.
"SELECT group_IDs FROM ims_rgroupuser WHERE user_ID='X' AND rights_ID='Adminrecht' AND user_ID!='Y'"
? Nee, das geht nicht, user_ID kann ja nicht X und Y gleichzeitig sein!
Ich rate dringend zum Mehrtabellensystem, es ist zwar programmieraufwendiger aber dafür hast du dann eine saubere Datenbankstruktur.
MfG