Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Rekod daripada Satu Jadual yang Tidak Wujud dalam Jadual Lain?

Bagaimana untuk Memilih Rekod daripada Satu Jadual yang Tidak Wujud dalam Jadual Lain?

DDD
Lepaskan: 2025-01-19 16:27:09
asal
443 orang telah melayarinya

How to Select Records from One Table That Don't Exist in Another?

Mengenal pasti Rekod Hilang Merentas Jadual Pangkalan Data

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Malangnya, pertanyaan SQL ini tidak lengkap dan tidak akan menghasilkan hasil yang diharapkan.

Penyelesaian Berkesan:

Pendekatan yang betul melibatkan penggunaan LEFT JOIN:

SELECT t2.name
FROM table2 t2
LEFT JOIN table1 t1 ON t1.name = t2.name
WHERE t1.name IS NULL;
Salin selepas log masuk

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'.
  • Pemilihan Medan: Pertanyaan memilih lajur 'nama' daripada 'jadual2', kerana ini adalah satu-satunya medan yang dijamin wujud daripada jadual itu dalam hasil akhir.

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan