2015-04-06 47 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