ホームページ > データベース > mysql チュートリアル > MySQL の「NOT IN」クエリが失敗するのはなぜですか? どうすれば修正できますか?

MySQL の「NOT IN」クエリが失敗するのはなぜですか? どうすれば修正できますか?

Linda Hamilton
リリース: 2025-01-13 14:12:43
オリジナル
127 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート