Maison >base de données >tutoriel mysql >Comment rechercher des appels sans entrées correspondantes dans l'annuaire téléphonique ?
Identifier les enregistrements d'appels sans correspondance
Ce guide montre comment rechercher des enregistrements d'appels dans une table « Appel » qui ne disposent pas d'entrées correspondantes dans une table « Phone_book ». Le but est d'identifier les appels provenant de numéros non répertoriés dans l'annuaire téléphonique. Nous explorerons plusieurs approches SQL pour y parvenir.
Méthode 1 : Utilisation de NOT IN
Cette méthode utilise la clause NOT IN
pour filtrer les numéros de téléphone présents dans la table "Phone_book".
<code class="language-sql">SELECT * FROM Call WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);</code>
Cette requête sélectionne toutes les colonnes de la table « Appel » où le phone_number
n'est pas trouvé dans la liste des phone_number
de la table « Phone_book ».
Méthode 2 : Employer NOT EXISTS
Cette approche utilise une sous-requête avec NOT EXISTS
pour vérifier l'absence de numéros de téléphone correspondants.
<code class="language-sql">SELECT * FROM Call WHERE NOT EXISTS (SELECT 1 FROM Phone_book WHERE Phone_book.phone_number = Call.phone_number);</code>
La sous-requête recherche une correspondance. Si aucune correspondance n'est trouvée (NOT EXISTS
), la requête externe inclut l'enregistrement.
Méthode 3 : Tirer parti LEFT OUTER JOIN
Cette méthode utilise un LEFT OUTER JOIN
pour combiner les deux tables, puis filtre les valeurs nulles dans la table "Phone_book".
<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>
A LEFT OUTER JOIN
renvoie toutes les lignes de la table "Appel". S'il n'y a aucune correspondance dans "Phone_book", les colonnes correspondantes dans "Phone_book" seront NULL
. La clause WHERE
filtre pour afficher uniquement ces lignes sans correspondance. Cette approche est souvent préférée en raison de ses avantages en termes de performances, en particulier avec des ensembles de données plus volumineux.
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!