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

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

DDD
DDDasal
2025-01-19 16:31:10293semak imbas

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

Mengekstrak Rekod Unik Tidak Ditemui dalam Jadual Lain: Panduan Terperinci

Tugas pangkalan data yang kerap melibatkan pengambilan entri unik daripada satu jadual yang tiada dalam jadual lain. Mari kita ilustrasikan dengan contoh:

<code>table1 (id, name)
table2 (id, name)</code>

Matlamat kami adalah untuk memilih data daripada table2 yang tidak muncul dalam table1. Pendekatan naif mungkin kelihatan seperti ini:

<code>SELECT name
FROM table2
-- excluding those in table1</code>

Ini tidak mencukupi; kaedah yang lebih canggih diperlukan untuk mengenal pasti rekod tidak sepadan yang berbeza dengan tepat.

Penyelesaian Berkesan: TINGGALKAN SERTAI dan ADALAH NULL

Pertanyaan berikut menggunakan LEFT JOIN untuk memautkan baris daripada table1 dan table2 berdasarkan lajur name. Keadaan IS NULL kemudian menapis keluar mana-mana pasangan yang sepadan:

<code>SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL</code>

Pecahan Terperinci:

Pertanyaan berfungsi seperti berikut:

  1. Ia memilih semua entri daripada table1 dan cuba untuk menyertainya dengan entri yang sepadan dalam table2.
  2. Klausa WHERE mengenal pasti baris dengan lajur table2.name ialah NULL. Nilai NULL menandakan bahawa baris table1 masing-masing tidak mempunyai padanan dalam table2.
  3. Akhir sekali, ia hanya mengembalikan lajur name daripada hasil carian, dijamin wujud dalam table1 untuk semua baris yang dipilih.

Nota Penting:

Walaupun secara amnya cekap dan serasi merentas pelbagai sistem pangkalan data yang menyokong ANSI 92 SQL, pendekatan ini mungkin tidak selalunya yang terpantas. Alternatif, seperti menggunakan operator NOT IN, boleh menawarkan prestasi yang lebih baik dalam situasi tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Nilai Berbeza daripada 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