Hallo zusammen
für die Benutzerauthentifizierung auf dem
MySQL Server verwende ich folgende funktionierenden
SQL:
SQL-Code:
( MEMBER_GROUP = 'ADMIN')
OR (( MEMBER_GROUP = 'CAMP') AND (CONDITION_VALUE = NEW.C_NO))
OR (NEW.C_NO IN (SELECT RPL$GROUPS_RIGHTS.CAMP_NO
FROM RPL$GROUPS JOIN RPL$GROUPS_RIGHTS ON RPL$GROUPS_RIGHTS.GROUP_NO = RPL$GROUPS.GROUP_NO
WHERE RPL$GROUPS.GROUP_NO = MEMBER_GROUP))
diesen möchte ich nun ein wenig erweitern / um die Abfrage von 2 Tabellen ungefähr so:
SQL-Code:
( MEMBER_GROUP = 'ADMIN')
OR (( MEMBER_GROUP = 'CAMP')
AND (CONDITION_VALUE = NEW.C_NO)
AND (NEW.SERVICE_NAME IN (SELECT RPL$SERVICE_TABLES.TABLE_NAME
FROM RPL$SERVICE JOIN RPL$SERVICE_TABLES ON RPL$SERVICE_TABLES.SERVICE_NAME = RPL$SERVICE.SERVICE_NAME
WHERE RPL$SERVICE.SERVICE_NAME LIKE SERVICE))
)
OR (NEW.C_NO IN (SELECT RPL$GROUPS_RIGHTS.CAMP_NO
FROM RPL$GROUPS JOIN RPL$GROUPS_RIGHTS ON RPL$GROUPS_RIGHTS.GROUP_NO = RPL$GROUPS.GROUP_NO
WHERE RPL$GROUPS.GROUP_NO = MEMBER_GROUP)
AND (NEW.SERVICE_NAME IN (SELECT RPL$SERVICE_TABLES.TABLE_NAME
FROM RPL$SERVICE JOIN RPL$SERVICE_TABLES ON RPL$SERVICE_TABLES.SERVICE_NAME = RPL$SERVICE.SERVICE_NAME
WHERE RPL$SERVICE.SERVICE_NAME LIKE NEW.SERVICE)))
)
Die 2 Tabellen sind:
RPL$SERVICE
Felder: SERVICE_NAME
RPL$SERVICE_TABLES
Felder: SERVICE_NAME / TABLE_NAME
Ein Problem ist dass ich in der aktuellen Tabelle ein Feld ( NEW.SERVICE )habe das mehrere Werte beinhalten kann.
( z.B Hotel / Altersheim ... ) Es soll nun geprüft werden ob in RPL$SERVICE.SERVICE_NAME ein Wert vorhanden ist
der im Feld NEW.SERVICE auftaucht ( Es können auch mehrere sein ).
Wie kann ich auf diese in dieser
SQL zugreifen?
Wenn Ihr noch Tipps für die Optimierung oder Vereinfachung habt bin ich dankbar.
Hoffe ich konnte die Frage verständlich erläutern.
Manfred