我必须在数据库中搜索某个结果,这些结果在一个表中,但不在另一个表的某个列中。我的查询是我到目前为止所做的。
$sql = "SELECT * FROM users WHERE name LIKE '%".$_POST["search"]."%' AND NOT IN
(SELECT friend FROM friends WHERE user='{$user_name}')";
你可以看到我有WHERE,然后我宣布它必须搜索的第一个项目。但后来我添加了AND,所以我可以搜索括号中的另一个表。
在不必将格式更改为多的情况下,我可以采取哪种方式执行此操作的最佳方法是什么?
如果有任何人有任何疑问,请在下面发布。所以我可以在将来提高我的问题质量,请在下面发表任何我可以改进的方法。
答案 0 :(得分:2)
问题不在于使用两个WHERE
条款,而不是写作:
... WHERE name LIKE '%xxx%' AND NOT IN (...) ...
你必须写:
... WHERE name LIKE '%xxx%' AND name NOT IN (...) ...
答案 1 :(得分:0)
"SELECT * FROM users left join friends on users.name=friends.friend WHERE friends.friend IS NULL AND users.name LIKE '%".$_POST["search"]."%'"