Heim >Datenbank >MySQL-Tutorial >Wie identifiziere ich nicht registrierte Anrufer mithilfe von SQL-Abfragen?

Wie identifiziere ich nicht registrierte Anrufer mithilfe von SQL-Abfragen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-22 18:39:11664Durchsuche

How to Identify Unregistered Callers Using SQL Queries?

Unbekannte Anrufer identifizieren: SQL-Techniken für nicht registrierte Nummern

In diesem Artikel wird gezeigt, wie Sie mithilfe von SQL-Abfragen Telefonanrufe von Nummern identifizieren, die nicht in einer Telefonbuchdatenbank aufgeführt sind. Wir werden mehrere effiziente Methoden untersuchen, um dies zu erreichen.

Szenario:

Betrachten Sie diese Tabellen:

Tabelle: Phone_book

id name phone_number
1 John 111111111111
2 Jane 222222222222

Tabelle: Call

id date phone_number
1 0945 111111111111
2 0950 222222222222
3 1045 333333333333

Ziel ist es, Anrufe von Nummern zu finden, nicht im Phone_book.

SQL-Abfragelösungen:

Im Folgenden werden drei Methoden vorgestellt:

Methode 1: NOT IN Unterabfrage

Dieser Ansatz verwendet eine NOT IN-Unterabfrage, um Anrufe mit Nummern, die im Phone_book:

vorhanden sind, effizient herauszufiltern
<code class="language-sql">SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);</code>

Methode 2: NOT EXISTS Unterabfrage

Diese Alternative verwendet NOT EXISTS, um das gleiche Ergebnis zu erzielen. Es wird oft als effizienter für große Datenmengen angesehen:

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

Methode 3: LEFT OUTER JOIN mit NULLPrüfen

Diese Methode verwendet ein LEFT OUTER JOIN und filtert nach NULL-Werten in der Spalte Phone_book, um Anrufe ohne übereinstimmende Einträge zu identifizieren:

<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>

Erwartetes Ergebnis:

Alle drei Abfragen erzeugen die gleiche Ausgabe:

Tabelle: Call

id date phone_number
3 1045 333333333333

Dadurch wird der Anruf von der nicht registrierten Nummer korrekt identifiziert. Wählen Sie die Methode, die am besten zu Ihrem Datenbanksystem und Ihrer Datengröße passt.

Das obige ist der detaillierte Inhalt vonWie identifiziere ich nicht registrierte Anrufer mithilfe von SQL-Abfragen?. 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