Используя это, например:
Мне нужно выбрать доступ, где таблица user_access является приоритетом. Если в user_access есть moduleFeatureID, тогда выберите вместо него тот, что в role_access. Но если moduleFeatureID не существует в user_access, отобразите то, что находится в таблице role_access.
Я получил правильные данные, используя этот запрос:
SELECT u.userID
,username
,password
,roleID
,moduleFeatureID
,isDisabled
FROM [user] u
INNER JOIN user_access ua ON ua.userID = u.userID
UNION
SELECT u.userID
,username
,password
,u.roleID
,moduleFeatureID
,isDisabled
FROM [user] u
INNER JOIN role_access ra ON ra.roleID = u.roleID
WHERE STR(u.userID) + STR(moduleFeatureID) NOT IN
(
SELECT STR(u.userID) + STR(moduleFeatureID)
FROM [user] u
INNER JOIN user_access ua ON ua.userID = u.userID
)
Но могу ли я попросить лучшего запроса для этого?