Heim >Datenbank >MySQL-Tutorial >Wie identifiziere ich nicht registrierte Anrufer mithilfe von SQL-Abfragen?
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
:
<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 NULL
Prü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!