В чем проблема этого оператора sql?

Я пишу этот оператор, который работает правильно во всех случаях, кроме одного случая

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 возвращают данные. почему?

0
задан sahar 24 July 2011 в 17:05
поделиться