Operator NOT IN
MySQL: Mengelakkan Ralat Sintaks Semasa Memilih Baris Berbeza
Banyak pengguna menghadapi ralat sintaks apabila menggunakan operator NOT IN
MySQL untuk mendapatkan semula baris yang nilai lajur tidak ditemui dalam jadual lain. Walaupun MySQL memang menyokong NOT IN
, sintaks adalah penting.
Pertanyaan:
<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal</code>
tidak betul dan akan menghasilkan ralat sintaks. Sintaks yang betul memerlukan subkueri:
<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)</code>
Dengan menggunakan kurungan untuk menyertakan (SELECT principal FROM Table2)
, anda membuat subkueri. MySQL kemudiannya mentafsirkan ini dengan betul sebagai satu set nilai untuk dibandingkan dengan Table1.principal
. Pertanyaan yang disemak ini dengan cekap mengembalikan semua baris dari Table1
di mana nilai principal
tiada daripada hasil subkueri. Ini menyelesaikan ralat sintaks dan memberikan hasil yang diharapkan.
Atas ialah kandungan terperinci Bagaimana Menggunakan `NOT IN` dengan Betul untuk Mengambil Baris Berbeza dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!