首頁 >資料庫 >mysql教程 >為什麼我的 MySQL'NOT IN”查詢失敗,如何修復?

為什麼我的 MySQL'NOT IN”查詢失敗,如何修復?

Linda Hamilton
Linda Hamilton原創
2025-01-13 14:12:43114瀏覽

Why is My MySQL

排除 MySQL「NOT IN」查詢錯誤

使用者最近在嘗試看似簡單的 MySQL 查詢時遇到語法錯誤。 目標是從 Table1 中選擇 principal 列值不存在於 Table2 中的所有行。 最初的錯誤查詢是:

<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal</code>

這會產生一個錯誤,導致使用者根據相互衝突的線上建議相信 MySQL 可能不支援 NOT IN 子句。 一些消息來源提出了複雜的解決方法。

然而,MySQL 確實支援NOT IN,但上面使用的語法有缺陷。正確的語法需要子查詢:

<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)</code>

此修訂後的查詢使用子查詢 (SELECT principal FROM Table2) 來明確定義 principal 中的 Table2 值集。 然後,MySQL 會正確地將每個 Table1.principal 值與該集合進行比較,僅傳回 找到符合項目的行。

最初的錯誤完全源自於 NOT IN 運算子的錯誤應用。 子查詢的包含為資料庫提供了成功執行查詢並產生預期結果所需的結構。

以上是為什麼我的 MySQL'NOT IN”查詢失敗,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn