如果我有以下SQL:
SELECT * FROM users LEFT JOIN friendship ON users.username = friendship.user_name
我得到以下结果
但如果我在最后添加以下WHERE,我根本得不到任何结果!
SELECT * FROM users LEFT JOIN friendship ON users.username = friendship.user_name WHERE friendship.friend_name = NULL
有人知道这里有什么问题吗? (我有一段时间没用过JOIN,你必须知道)
答案 0 :(得分:8)
WHERE friendship.friend_name = NULL
您无法使用=
与NULL进行比较,您需要使用IS NULL
;
WHERE friendship.friend_name IS NULL
答案 1 :(得分:2)
尝试使用IS NULL
代替= NULL
。 IS
是具有空值的正确比较器。
答案 2 :(得分:1)
试试:
... WHERE friendship.friend_name IS NULL
代替:
WHERE friendship.friend_name = NULL
答案 3 :(得分:0)
dship ON users.username = friendship.user_name WHERE friendship.friend_name =''
使用此
答案 4 :(得分:0)
你可以试试这个:
SELECT * FROM users LEFT JOIN friendship ON users.username = friendship.user_name AND friendship.friend_name = NULL
where子句过滤掉左连接不成功的行。将其移至联接: