我从 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
出了什么问题?
谢谢!!!
最佳答案
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 <> '';
关于mysql - 左连接结果为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29472352/