2015-04-06 73 views
0

我有一個奇怪的結果從一個MySQL查詢來:空結果左加入

如果我使用

SELECT cbe.id, cbe.user_id, cbe_profile_gender ,bud.status,cbe.avatar 
FROM findme as cbe 
LEFT JOIN findme_buddylist as bud ON cbe.user_id = bud.userid 
WHERE cbe.user_id<>2122 
AND cbe.avatar != "" 
AND bud.status != "2" 

我沒有得到任何結果,因爲表ade39_findme_buddylist是空

但如果我刪除行:

AND bud.status != "2" 

我得到的結果顯示bud.status = NULL

出了什麼問題?

謝謝!

+1

正常對照運營商如'='和'='不'NULL'工作。使用'IS NULL'或'IS NOT NULL'來檢查列是否爲空。 – GolezTrol 2015-04-06 13:38:40

回答

0

條件上的LEFT JOIN表應該是in子句中:

SELECT cbe.id, cbe.user_id, cbe_profile_gender ,bud.status,cbe.avatar 
FROM ade39_findme cbe LEFT JOIN 
    ade39_findme_buddylist bud 
    ON cbe.user_id = bud.userid and bud.status <> 2 
WHERE cbe.user_id <> 2122 AND cbe.avatar <> ''; 
+1

你是天才!!!! – user2881954 2015-04-06 13:44:10