2015-09-17 26 views
0
SELECT permission.bit,permission.name 
FROM user 
LEFT JOIN permission ON user.role & permission.bit 
WHERE user.id = 1 

我有這樣的查詢,我得到這個錯誤:建立出錯在SQL中加入

Msg 4145, Level 15, State 1, Line 3
An expression of non-boolean type specified in a context where a condition is expected, near 'bit'.

+0

'ON user.col = permiss.col'並使用'AND'代替'&'加入條件 – lad2025

+0

對不起是一個錯字 –

回答

0

我覺得找你試圖做一個按位比較

SELECT permission.bit,permission.name 
FROM user LEFT JOIN permission 
    ON user.role & permission.bit <> 0 
WHERE user.id = 1 
+0

你是真的,我試過你已經發布的查詢,但仍然有相同的錯誤信息,謝謝 –

+0

我想想我們er.role不是一個位類型的字段,是嗎?我認爲「角色」有一些可能的值,而不是真或假 – Eralper

+0

實際上,如果這是一個按位比較,則.role和.bit應該是整數。因此,例如,如果role = 10,那麼連接將爲位值2和8賦予true – devzero