我寫這篇聲明,在osqs_users_privileges沒有行及本聲明的情況下正常工作在所有情況下,除了一種情況這個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');
(priv_no SELECT FROM osqs_users_privileges WHERE user_no = 54和「GRANT」 =「N」 )返回0行,即使其他選擇語句返回數據,所有腳本都會返回0行。爲什麼?
,, 它給出了一個錯誤:無效的關係運算符在這一行 LEFT JOIN osqs_groups_privileges GP在osqs_users_groups ug上gp.priv_no = p.priv_no – sahar
非常感謝你,你給我的方式。 但我改變了你的答案 – sahar