Rumah >pangkalan data >tutorial mysql >Bagaimana Saya Boleh Menggunakan LEFT JOIN untuk Cari Rekod dalam Satu Jadual yang Tidak Wujud dalam Jadual Lain?

Bagaimana Saya Boleh Menggunakan LEFT JOIN untuk Cari Rekod dalam Satu Jadual yang Tidak Wujud dalam Jadual Lain?

Susan Sarandon
Susan Sarandonasal
2025-01-19 16:41:08420semak imbas

How Can I Use a LEFT JOIN to Find Records in One Table That Don't Exist in Another?

Gunakan LEFT JOIN untuk memilih rekod dalam satu jadual yang tidak wujud dalam jadual lain

Apabila bekerja dengan berbilang jadual dalam pangkalan data, menentukan rekod dalam satu jadual yang tidak wujud dalam jadual lain adalah tugas biasa. Artikel ini akan meneroka cara menggunakan pertanyaan SQL untuk menyelesaikan tugas ini.

Andaikan terdapat dua jadual, jadual1 dan jadual2, kedua-duanya mengandungi lajur bernama id dan nama. Matlamatnya adalah untuk memilih semua nama daripada jadual2 yang tidak muncul dalam jadual1.

Kaedah tradisional

Pertanyaan yang diberikan pada mulanya cuba memilih nama yang tiada dalam jadual1 terus daripada jadual2:

<code class="language-sql">SELECT name   
FROM table2  
-- that are not in table1 already</code>

Walau bagaimanapun, pertanyaan ini bergantung pada fungsi pangkalan data tertentu yang mungkin tidak tersedia secara universal.

LEFT JOIN penyelesaian

Sebaliknya, kita boleh menggunakan LEFT JOIN untuk melakukan ini dengan cekap:

<code class="language-sql">SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL</code>

Penjelasan

Dalam pertanyaan ini, kami bergabung dengan jadual1 (disebut sebagai t1) dan jadual2 (disebut sebagai t2) dengan membandingkan lajur nama mereka. LEFT JOIN menyimpan semua baris dalam jadual1 dan mengembalikan baris yang sepadan dalam jadual2. Untuk baris dalam jadual1 yang tidak mempunyai baris yang sepadan dalam jadual2, baris yang sepadan dalam jadual2 akan menjadi NULL.

Akhir sekali, kami menggunakan klausa WHERE untuk memilih hanya baris dalam hasil yang mempunyai baris padanan NULL dalam jadual2. Ini memastikan bahawa kami hanya memilih nama dalam jadual2 yang tidak terdapat dalam jadual1.

Kelebihan kaedah LEFT JOIN

Kaedah LEFT JOIN mempunyai kelebihan berikut:

  • Kepelbagaian: Ia boleh digunakan dalam pelbagai enjin pangkalan data.
  • Kecekapan: Dalam kebanyakan kes, ia menjana pelan pelaksanaan yang cekap.
  • Jelas dan mudah dibaca: Logik pertanyaan mudah difahami.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menggunakan LEFT JOIN untuk Cari Rekod dalam Satu Jadual yang Tidak Wujud dalam Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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