Heim >Datenbank >MySQL-Tutorial >Wie kann ich fehlende Daten mit „SELECT * WHERE NOT EXISTS' korrekt abrufen?

Wie kann ich fehlende Daten mit „SELECT * WHERE NOT EXISTS' korrekt abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-26 15:34:10796Durchsuche

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

Fehlende Daten mit „SELECT * WHERE NOT EXISTS“ abrufen

Problem:

An Um Daten aus einer Tabelle abzurufen, in der bestimmte Zellen in einer anderen Tabelle nicht vorhanden sind, hat ein Benutzer Folgendes implementiert Abfrage:

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

Diese Abfrage gibt jedoch trotz bekanntermaßen fehlender Daten keine Ergebnisse zurück.

Lösung:

Um das Problem zu beheben, it Es ist notwendig, die beiden Tabellen auf der Grundlage eines gemeinsamen Schlüssels, beispielsweise der Mitarbeiter-ID, zu verbinden. Die Verwendung von NOT EXISTS ohne Join führt immer zu keinen Ergebnissen, wenn die zweite Tabelle Daten enthält.

Die korrekte Abfrage, vorausgesetzt, EmployeeID ist der Join-Schlüssel, lautet:

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

Alternativ: a Ein weniger effizienter Ansatz wäre, einen LEFT JOIN zu verwenden und die NULL-Werte herauszufiltern.

Das obige ist der detaillierte Inhalt vonWie kann ich fehlende Daten mit „SELECT * WHERE NOT EXISTS' korrekt abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn