Я пишу этот оператор, который работает правильно во всех случаях, кроме одного случая
SELECT p.priv_no FROM osqs_privileges p,osqs_users_privileges up
WHERE up.priv_no = p.priv_no AND up.user_no = 54 AND up."GRANT" = 'Y'
UNION
SELECT p.priv_no FROM
osqs_privileges p,osqs_groups_privileges gp,osqs_users_groups ug,osqs_users_privileges up
WHERE gp.priv_no = p.priv_no AND ug.grp_no = gp.grp_no AND ug.user_no = 54
AND gp.priv_no NOT IN
(SELECT priv_no FROM osqs_users_privileges WHERE user_no = 54 AND "GRANT" = 'N');
в случае, когда osqs_users_privileges не имеет строк и этот оператор (SELECT priv_no FROM osqs_users_privileges WHERE user_no = 54 AND «GRANT» = 'N') возвращает 0 строк, все скрипты возвращают 0 строк, даже если другие операторы select возвращают данные. почему?