0
我正在做一個查詢,當管理員用戶使用它時,與普通用戶使用它時(在報表環境中)相比,其行爲有所不同。使用IN進行Mysql查詢並且if-subquery不起作用
當管理員查看時,我希望報表能夠在所有用戶上運行。當普通用戶使用它時,我希望查詢只查看在當前用戶下工作的用戶。
我想使1報告,所以1查詢,結合了兩個方面。我的猜測是這樣的:
SELECT * FROM datatable dt WHERE dt.user_id IN (
IF (currentUserAdmin = 1, (SELECT id FROM user), (SELECT id FROM user WHERE working_under = currentUserID))
)
(請想象currentUserAdmin
和currentUserID
是傳遞到含報表查詢存儲過程的參數,那datatable
實際上是一些真正的表)
的問題是,MySQL的說「子查詢返回多於一行」。那麼,我會說這是整個想法,因爲我試圖通過IN
條款來使用它。
我能做些什麼來使這個查詢工作?
謝謝!我想我是想再線性(PHP).. – Tominator
你歡迎:)! –