Heim > Datenbank > MySQL-Tutorial > Wie finde ich Anrufe ohne entsprechende Telefonbucheinträge?

Wie finde ich Anrufe ohne entsprechende Telefonbucheinträge?

Patricia Arquette
Freigeben: 2025-01-22 18:40:10
Original
710 Leute haben es durchsucht

How to Find Calls Without Corresponding Phone Book Entries?

Identifizieren nicht übereinstimmender Anrufdatensätze

Diese Anleitung zeigt, wie Sie Anrufdatensätze in einer „Anruf“-Tabelle finden, denen entsprechende Einträge in einer „Telefonbuch“-Tabelle fehlen. Ziel ist es, Anrufe von Nummern zu identifizieren, die nicht im Telefonbuch aufgeführt sind. Wir werden verschiedene SQL-Ansätze untersuchen, um dies zu erreichen.

Methode 1: Verwendung von NOT IN

Diese Methode verwendet die NOT IN-Klausel, um in der Tabelle „Phone_book“ vorhandene Telefonnummern herauszufiltern.

<code class="language-sql">SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);</code>
Nach dem Login kopieren

Diese Abfrage wählt alle Spalten aus der Tabelle „Anruf“ aus, in denen das phone_number nicht in der Liste der phone_numbers aus der Tabelle „Telefonbuch“ gefunden wird.

Methode 2: Einsatz von NOT EXISTS

Dieser Ansatz verwendet eine Unterabfrage mit NOT EXISTS, um zu prüfen, ob keine übereinstimmenden Telefonnummern vorhanden sind.

<code class="language-sql">SELECT *
FROM Call
WHERE NOT EXISTS
  (SELECT 1
   FROM Phone_book
   WHERE Phone_book.phone_number = Call.phone_number);</code>
Nach dem Login kopieren

Die Unterabfrage sucht nach einer Übereinstimmung. Wenn keine Übereinstimmung gefunden wird (NOT EXISTS), schließt die äußere Abfrage den Datensatz ein.

Methode 3: Nutzung LEFT OUTER JOIN

Diese Methode verwendet ein LEFT OUTER JOIN, um beide Tabellen zu kombinieren und dann nach Nullwerten in der Tabelle „Phone_book“ zu filtern.

<code class="language-sql">SELECT *
FROM Call
LEFT OUTER JOIN Phone_Book
  ON Call.phone_number = Phone_book.phone_number
WHERE Phone_book.phone_number IS NULL;</code>
Nach dem Login kopieren

A LEFT OUTER JOIN gibt alle Zeilen aus der „Call“-Tabelle zurück. Wenn es keine Übereinstimmung in „Phone_book“ gibt, lauten die entsprechenden Spalten in „Phone_book“ NULL. Die WHERE-Klausel filtert, um nur diese nicht übereinstimmenden Zeilen anzuzeigen. Dieser Ansatz wird aufgrund seiner Leistungsvorteile häufig bevorzugt, insbesondere bei größeren Datensätzen.

Das obige ist der detaillierte Inhalt vonWie finde ich Anrufe ohne entsprechende Telefonbucheinträge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage