Mysql
 sql >> Base de données >  >> RDS >> Mysql

diff entre les tables

Vous pouvez essayer une jointure externe. Par exemple, vous pouvez trouver les lignes présentes dans la table first mais absent de la table second comme ceci (non testé):

SELECT first.a, first.b, first.c FROM first LEFT JOIN second USING(a,b,c) 
WHERE second.a IS NULL

La jointure vous donne une table contenant toutes les lignes présentes dans first , comme ceci :

first.a first.b first.c second.a second.b second.c
   a1      b1     c1      NULL      NULL     NULL
   a2      b2     c2       a2       b2       c2

Maintenant, vous n'avez plus qu'à interroger les lignes avec second.a IS NULL pour trouver les lignes absentes en second .

Les performances peuvent être médiocres car vous devez joindre toutes les colonnes.