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!