Maison  >  Article  >  base de données  >  Comment trouver la différence définie dans MySQL

Comment trouver la différence définie dans MySQL

藏色散人
藏色散人original
2021-12-01 15:16:0613671parcourir

Méthode MySQL pour trouver l'ensemble de différences : 1. Utilisez not exist pour filtrer l'ensemble de différences des deux tables ; 2. Filtrez l'ensemble de différences des deux tables via la valeur du champ vide générée après la connexion LEFT JOIN.

Comment trouver la différence définie dans MySQL

L'environnement d'exploitation de cet article : système Windows 7, mysql version 8.0, ordinateur Dell G3.

Comment trouver la différence définie dans MySQL ?

Comment interroger les enregistrements avec des données incohérentes dans deux tables avec des nombres de champs différents dans MySQL ? Généralement, NOT EXISTS (clause de non-existence) ou LEFT JOIN peuvent être utilisés pour générer la connexion gauche (droite). Utilisez les valeurs de champ vides pour filtrer la différence entre les deux tables

1 NON EXISTE

n'existe pas Lorsque le champ de comparaison a un index disponible, son efficacité opérationnelle est très élevée. , mais s'il n'y a pas d'index, il fonctionnera sur une grande taille. Lors de l'utilisation de tables de données, son efficacité de fonctionnement est extrêmement mauvaise, vous devriez donc éviter de l'utiliser à ce moment-là

SELECT
    * 
FROM
    smd_employee t1 
WHERE
    NOT EXISTS ( SELECT 1 FROM asd_user_account t2 WHERE t2.u_phone = t1.employee_phone );

2. LEFT JOIN

Utilisez gauche (droite ) joins pour trouver l'ensemble de différences, car la nécessité d'implémenter deux jointures de table entraînera un effet cartésien. Les lignes d'enregistrement de l'ensemble de sortie peuvent augmenter

S'il n'est pas un à un ou un à plusieurs. , nous devons traiter la situation plusieurs-à-plusieurs en plusieurs-à-un avant de nous connecter, sinon le jeu d'enregistrements de sortie peut être incorrect.

SELECT
    a.* 
FROM
    smd_employee a
    LEFT JOIN asd_user_account b ON b.u_phone = a.employee_phone 
WHERE
    b.u_phone IS NULL;

Deux méthodes pour trouver des ensembles de différences. Lorsqu'il y a des index disponibles, not exist est plus efficace que la jointure à gauche. Au contraire, la jointure à gauche est plus efficace

[Recommandation associée :

tutoriel vidéo mysql

].

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