2016-11-30 37 views
1

我必須在數據庫中搜索某個表中的某些結果,這些結果在一個表中,但不在另一個表的某個列中。我的查詢下面是我到目前爲止。不能在mysql查詢中有兩個where語句

$sql = "SELECT * FROM users WHERE name LIKE '%".$_POST["search"]."%' AND NOT IN 
(SELECT friend FROM friends WHERE user='{$user_name}')"; 

你可以看到我有WHERE,然後我聲明它必須搜索的第一個項目。但是,我添加了AND,因此我可以搜索括號內的另一個表格。

什麼是我可以做這個動作的最佳方式,而不必更改我的格式?

如果有人有任何問題,請在下面發帖。因此,我可以提高我的問題質量,請在下面張貼我可以改進的任何方式。

+1

使用'和名稱NOT IN (SELECT ...)',除此之外你的查詢看起來很好。 「保留相同的結果是什麼意思?」 –

+0

@TimBiegeleisen我不希望結果有所不同。對不起,這是沒有解釋得很好 – Jackbeeby

回答

2

的問題是不是使用兩個WHERE條款,它是不是寫:

... WHERE name LIKE '%xxx%' AND NOT IN (...) ... 

你必須寫:

... WHERE name LIKE '%xxx%' AND name NOT IN (...) ... 
+0

謝謝,我意識到我離開了。 – Jackbeeby

0
"SELECT * FROM users left join friends on users.name=friends.friend WHERE friends.friend IS NULL AND users.name LIKE '%".$_POST["search"]."%'" 
+1

此代碼可能正常工作,但稍好解釋一下。 –

相關問題