Maison > base de données > tutoriel mysql > Comment identifier les appelants non enregistrés à l'aide de requêtes SQL ?

Comment identifier les appelants non enregistrés à l'aide de requêtes SQL ?

Patricia Arquette
Libérer: 2025-01-22 18:39:11
original
734 Les gens l'ont consulté

How to Identify Unregistered Callers Using SQL Queries?

Identification des appelants inconnus : techniques SQL pour les numéros non enregistrés

Cet article montre comment identifier les appels téléphoniques provenant de numéros non répertoriés dans une base de données d'annuaire téléphonique à l'aide de requêtes SQL. Nous explorerons plusieurs méthodes efficaces pour y parvenir.

Scénario :

Considérez ces tableaux :

Tableau : Phone_book

id name phone_number
1 John 111111111111
2 Jane 222222222222

Tableau : Call

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

L'objectif est de retrouver les appels provenant de numéros pas dans le Phone_book.

Solutions de requêtes SQL :

Trois méthodes sont présentées ci-dessous :

Méthode 1 : NOT IN Sous-requête

Cette approche utilise une sous-requête NOT IN pour filtrer efficacement les appels dont les numéros sont présents dans le Phone_book :

SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);
Copier après la connexion

Méthode 2 : NOT EXISTS Sous-requête

Cette alternative utilise NOT EXISTS pour obtenir le même résultat. Il est souvent considéré comme plus efficace pour les grands ensembles de données :

SELECT *
FROM Call
WHERE NOT EXISTS (
    SELECT *
    FROM Phone_book
    WHERE Phone_book.phone_number = Call.phone_number
);
Copier après la connexion

Méthode 3 : LEFT OUTER JOIN avec NULL Chèque

Cette méthode utilise un LEFT OUTER JOIN et filtre les valeurs NULL dans la colonne Phone_book pour identifier les appels sans entrées correspondantes :

SELECT *
FROM Call
LEFT OUTER JOIN Phone_book ON (Call.phone_number = Phone_book.phone_number)
WHERE Phone_book.phone_number IS NULL;
Copier après la connexion

Résultat attendu :

Les trois requêtes produiront le même résultat :

Tableau : Call

id date phone_number
3 1045 333333333333

Cela identifie correctement l'appel provenant du numéro non enregistré. Choisissez la méthode qui convient le mieux à votre système de base de données et à la taille des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal