Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mendapatkan semula data yang hilang dengan betul menggunakan `SELECT * WHERE NOT EXISTS`?

Bagaimana untuk mendapatkan semula data yang hilang dengan betul menggunakan `SELECT * WHERE NOT EXISTS`?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 15:34:10769semak imbas

How to Correctly Retrieve Missing Data Using `SELECT * WHERE NOT EXISTS`?

Dapatkan Data Yang Hilang Menggunakan "SELECT * WHERE NOT EXISTS"

Masalah:

Kepada mendapatkan semula data daripada jadual di mana sel tertentu tidak terdapat dalam jadual lain, pengguna melaksanakan perkara berikut pertanyaan:

SELECT * from employees WHERE NOT EXISTS (SELECT name FROM eotm_dyn)

Walau bagaimanapun, pertanyaan ini tidak mengembalikan hasil, walaupun diketahui kehilangan data.

Penyelesaian:

Untuk menangani isu itu, ia adalah perlu untuk menyertai dua jadual berdasarkan kunci biasa, seperti employeeID. Menggunakan NOT EXISTS tanpa cantuman akan sentiasa tidak menghasilkan hasil jika jadual kedua mengandungi sebarang data.

Pertanyaan yang betul, dengan mengandaikan employeeID ialah kunci pencantuman, ialah:

SELECT  *
FROM    employees e
WHERE   NOT EXISTS
        (
        SELECT  null 
        FROM    eotm_dyn d
        WHERE   d.employeeID = e.id
        )

Sebagai alternatif, a pendekatan yang kurang cekap ialah menggunakan LEFT JOIN dan menapis nilai NULL.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semula data yang hilang dengan betul menggunakan `SELECT * WHERE NOT EXISTS`?. 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