Wie finde ich Datensätze in einer Tabelle, die in einer anderen Tabelle nicht vorhanden sind?
In einer relationalen Datenbank müssen Sie möglicherweise Datensätze in einer Tabelle finden, die in einer anderen Tabelle nicht vorhanden sind. Ein häufiges Beispiel ist die Identifizierung von Anrufaufzeichnungen für Personen, deren Telefonnummern nicht im Telefonbuch registriert sind.
Stellen Sie sich das folgende Szenario vor:
<code>电话簿 (Phone_book) +----+------+--------------+ | id | name | phone_number | +----+------+--------------+ | 1 | John | 111111111111 | +----+------+--------------+ | 2 | Jane | 222222222222 | +----+------+--------------+ 来电记录 (Call) +----+------+--------------+ | id | date | phone_number | +----+------+--------------+ | 1 | 0945 | 111111111111 | +----+------+--------------+ | 2 | 0950 | 222222222222 | +----+------+--------------+ | 3 | 1045 | 333333333333 | +----+------+--------------+</code>
Um Anrufaufzeichnungen für eine Person zu finden, deren Telefonnummer nicht im Telefonbuch enthalten ist, können Sie verschiedene Methoden verwenden:
Methode 1: Verwenden Sie die Unterabfrage „NOT IN“
SELECT * FROM Call WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book)
Diese Abfrage prüft direkt, ob die Telefonnummer in der Tabelle „Anruf“ in der Tabelle „Telefonbuch“ erscheint. Wenn nicht, wählen Sie den entsprechenden Anrufdatensatz aus.
Methode 2: Verwenden Sie die Unterabfrage „NOT EXISTS“
SELECT * FROM Call WHERE NOT EXISTS (SELECT * FROM Phone_book WHERE Phone_book.phone_number = Call.phone_number)
Ähnlich wie die Unterabfrage „NOT IN“ verwendet diese Methode die Unterabfrage „NOT EXISTS“, um zu prüfen, ob eine passende Telefonnummer in der Tabelle „Phone_book“ vorhanden ist.
Methode 3: Verwenden Sie „LEFT OUTER JOIN“
SELECT * FROM Call LEFT OUTER JOIN Phone_Book ON (Call.phone_number = Phone_book.phone_number) WHERE Phone_book.phone_number IS NULL
Diese Methode verwendet „LEFT OUTER JOIN“, um alle Datensätze eingehender Anrufe abzurufen, und filtert dann Datensätze mit übereinstimmenden Telefonnummern in der Tabelle „Phone_book“ heraus, indem in der Spalte „Phone_book.phone_number“ nach NULL-Werten gesucht wird.
Das obige ist der detaillierte Inhalt vonWie finde ich Datensätze in einer Tabelle, die in einer anderen nicht vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!