我有兩個表:查找行具有所有鏈接的行
User (id, name, etc)
UserRight (user_id, right_id)
我想找誰有權1,2和3的用戶,但沒有誰的用戶只具有一個或兩個這些。此外,權限的數量也會有所不同,因此對(1,2,3)和(1,2,3,4,5,6,7)的搜索應該使用相同的查詢。
本質:
SELECT *
FROM User
WHERE (
SELECT right_id
FROM tblUserRight
WHERE user_id = id
ORDER BY user_id ASC
) = (1,2,3)
在MySQL這可能嗎?
WHERE right_id IN(1,2,3),也給有隻有一個正確的ID的用戶,他希望right_id = 1和right_id = 2和right_id = 3 – 2010-07-06 11:39:03
那不是什麼 'ALL'關鍵字無論如何。 – 2010-07-06 11:39:51
順便說一下,當我第一次聽到'ALL'的時候,我仍然有同樣的感覺,但是我一直在努力思考什麼時候你真的需要使用它。 'expr> ALL()'會更好地寫成'expr> SELECT(MAX)...'等。 – 2010-07-06 11:57:04