Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan MySQL 'TIDAK MASUK' Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pertanyaan MySQL 'TIDAK MASUK' Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2025-01-13 14:12:43
asal
127 orang telah melayarinya

Why is My MySQL

Menyelesaikan masalah MySQL "TIDAK DALAM" Ralat Pertanyaan

Seorang pengguna baru-baru ini mengalami ralat sintaks semasa mencuba pertanyaan MySQL yang kelihatan mudah. Matlamatnya adalah untuk memilih semua baris daripada Table1 yang nilai lajur principal tidak terdapat dalam Table2. Pertanyaan awal yang salah ialah:

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

Ini menjana ralat, menyebabkan pengguna percaya bahawa MySQL mungkin tidak menyokong klausa NOT IN, berdasarkan nasihat dalam talian yang bercanggah. Sesetengah sumber mencadangkan penyelesaian yang rumit.

Walau bagaimanapun, MySQL memang menyokong NOT IN, tetapi sintaks yang digunakan di atas adalah cacat. Sintaks yang betul memerlukan subkueri:

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

Pertanyaan yang disemak ini menggunakan subkueri (SELECT principal FROM Table2) untuk mentakrifkan set nilai principal secara eksplisit daripada Table2. MySQL kemudiannya membandingkan setiap nilai Table1.principal dengan betul dengan set ini, hanya mengembalikan baris yang padanannya tidak ditemui.

Ralat asal berpunca semata-mata daripada aplikasi operator NOT IN yang salah. Kemasukan subkueri menyediakan struktur yang diperlukan untuk pangkalan data untuk melaksanakan pertanyaan dengan jayanya dan menghasilkan hasil yang diharapkan.

Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL 'TIDAK MASUK' Gagal, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan