Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Rekod daripada Satu Jadual yang Tidak Wujud dalam Jadual Lain?
Pertanyaan pangkalan data selalunya memerlukan mendapatkan semula data daripada satu jadual yang tidak mempunyai entri sepadan dalam jadual lain. Mari kita gambarkan ini dengan contoh:
Senario:
Kami mempunyai dua jadual, 'table1' dan 'table2', dengan struktur berikut:
<code>table1 (id, name) table2 (id, name)</code>
Objektif:
Matlamat kami adalah untuk mengekstrak nilai 'nama' daripada 'table2' yang tiada dalam 'table1'.
Pendekatan naif mungkin:
<code>SELECT name FROM table2 -- where name is not in table1</code>
Malangnya, pertanyaan SQL ini tidak lengkap dan tidak akan menghasilkan hasil yang diharapkan.
Penyelesaian Berkesan:
Pendekatan yang betul melibatkan penggunaan LEFT JOIN
:
<code class="language-sql">SELECT t2.name FROM table2 t2 LEFT JOIN table1 t1 ON t1.name = t2.name WHERE t1.name IS NULL;</code>
Penjelasan:
LEFT JOIN
: Ini memastikan semua baris daripada 'table2' disertakan dalam set hasil, tanpa mengira baris yang sepadan dalam 'table1'.WHERE
Fasal: Syarat WHERE t1.name IS NULL
menapis keputusan, mengekalkan hanya baris tersebut daripada 'table2' yang tiada 'nama' yang sepadan dalam 'table1'.Teknik LEFT JOIN
ini serasi secara meluas merentas pelbagai sistem pangkalan data, menawarkan kaedah yang mantap untuk mengenal pasti rekod yang hilang antara jadual.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Rekod daripada Satu Jadual yang Tidak Wujud dalam Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!