我有这个问题:
SELECT username FROM users INNER JOIN friends WHERE friends.user_a = users.id OR friends.user_b = users.id AND users.username <> 'david';
它返回了users.username =&#39; david&#39;的行。我怎么能没有这个?
答案 0 :(得分:1)
对于任何非打印字符,可能会尝试NOT LIKE '%david%'
吗?
尝试WHERE (friends.user_a = users.id OR friends.user_b = users.id) AND users.username <> 'david';
<强>说明:强>
你的逻辑是friends.user_a = users.id OR friends.user_b = users.id AND users.username <> 'david'
你说的是:&#34;带给我任何与user_a等有关的朋友......&#34;
因此,当第一个应用时,它不需要检查其余部分,但在括号后,我们说:&#34;带给我任何人1.是user_a或users_b的朋友2.他的user_name不是&# 39;大卫&#39;&#34;