У меня есть эти два подзапроса, которые я начал работать
(
SELECT GLOBAL_USERS.ID AS USER_ID, GLOBAL_USERS.USER_ID AS USERNAME,
GLOBAL_USERS.DEPARTMENT AS DEPARTMENT,
GLOBAL_USERS.FIRST_NAME AS FIRSTNAME, GLOBAL_USERS.LAST_NAME AS LASTNAME,
GLOBAL_USERS.TITLE AS TITLE,
USER_FIRST_ENTITLEMENTS.ENTITLEMENT_NAME AS ENTITLEMENTNAME,
USER_FIRST_ENTITLEMENTS.APPLICATION_NAME AS APPLICATIONNAME
FROM GLOBAL_USERS
INNER JOIN USER_FIRST_ENTITLEMENTS
ON GLOBAL_USERS.ID=USER_FIRST_ENTITLEMENTS.USER_ID AND
(USER_FIRST_ENTITLEMENTS.APPLICATION_NAME='MY APPLICATION NAME'
AND USER_FIRST_ENTITLEMENTS.ENTITLEMENT_NAME LIKE '%\fis\%')
) join1
(
SELECT DISTINCT injoin1.ID,injoin2.APPLICATION_ROLE_ID, injoin2.NAME FROM
(
SELECT GLOBAL_USERS.ID,USER_SECOND_ENTITLEMENTS.APPLICATION_ROLE_ID
FROM GLOBAL_USERS
INNER JOIN USER_SECOND_ENTITLEMENTS
ON GLOBAL_USERS.ID=USER_SECOND_ENTITLEMENTS.USER_ID
) injoin1,
(
SELECT USER_SECOND_ENTITLEMENTS.APPLICATION_ROLE_ID,SECOND_ENTITLEMENT_DEFINITIONS.NAME
FROM USER_SECOND_ENTITLEMENTS
INNER JOIN SECOND_ENTITLEMENT_DEFINITIONS
ON USER_SECOND_ENTITLEMENTS.APPLICATION_ROLE_ID=SECOND_ENTITLEMENT_DEFINITIONS.ID
) injoin2
WHERE injoin1.APPLICATION_ROLE_ID=injoin2.APPLICATION_ROLE_ID
) join2
По сути, теперь мне нужно сделать, чтобы увидеть, существует ли каждое join1.ENTITLEMENTNAME для каждого join1.USER_ID для того же join2.ID в join2.НАЗВАНИЕ.Если он не существует, мне нужна строка с именем join1.USERNAME join1.DEPARTMENT, join1.FIRSTNAME, join1.LASTNAME, join1.TITLE, join1.ENTITLEMENTNAME, join1.APPLICATIONNAME
I, вв то же время нужно проверить, существует ли каждое join2.NAME для каждого join2.ID для того же join1.USER_ID в join1.ENTITLEMENTNAME
Я немного растерялся, как это сделать, но я уверен, что это такс каким-либо типом объединения.
Примечания: сравнение join1.ENTITLEMENTNAME с join2.NAME и идентификаторами использования находятся в join1.USER_ID и join2.ID.
Меня не беспокоит эффективность илискорость, мне просто нужна функциональность, поэтому достаточно простого ответа.
Дополнительные очки брауни, если вы поможете мне с регулярным выражением.Join2.NAME хранятся как сами по себе, но join1.ENTITLEMENTNAME хранятся как "/ fis /". Я не совсем уверен, как отфильтровать это, поэтому было бы полезно, если бы кто-нибудь мог объяснить.
Спасибозаранее!