我試圖阻止某些列表中的名稱,這是我試圖的MySQL排除阻塞表
命令SELECT * FROM USER LIMIT 0, 50 WHERE
名NOT IN (SELECT * FROM
排除)
我排除表包含用戶名,我想阻止它,但似乎不工作。
我試圖阻止某些列表中的名稱,這是我試圖的MySQL排除阻塞表
命令SELECT * FROM USER LIMIT 0, 50 WHERE
名NOT IN (SELECT * FROM
排除)
我排除表包含用戶名,我想阻止它,但似乎不工作。
重新編碼它作爲一個左連接: -
SELECT `USER`.*
FROM `USER`
LEFT OUTER JOIN exclude
ON `USER`.name = exclude.name
WHERE exclude.name IS NULL
LIMIT 0, 50
但是,如果你想要做它使用相同的樣式之前,你需要從選擇返回匹配字段從排除,不是每一個領域(即不SELECT *)
SELECT *
FROM `USER`
WHERE name NOT IN (SELECT name FROM exclude)
LIMIT 0, 50
謝謝完美 – user1396982
請注意,某些MySQL引擎和區域設置組合對於表和列名稱是區分大小寫的,所以在上述答案的「USER'.name = exclude.name」中使用大寫'USER'會更加正確。我編輯修復接受的答案未被同行評論者接受,因此我將其作爲評論發佈。 – linguanerd
以上是非常真實的。將編輯答案以匹配。 – Kickstart
試試這個:
SELECT * FROM USER LIMIT 0, 50 WHERE name NOT IN (SELECT name FROM exclude)
您查詢不起作用的最可能原因是exclude
表可能有多個列,當您試圖運行查詢時會導致錯誤
「似乎不工作」不是一個描述你遇到的問題。我們不知道什麼是「不工作」,除非你解釋它。請具體說明您要求我們幫助您解決的問題。我們無法看到您的屏幕或從我們所在的位置閱讀您的想法,因此我們只有您提供給我們的信息。謝謝。 –