J'ai deux tables, A et B, qui ont la même structure (environ 30+ champs). Existe-t-il un moyen court et élégant de rejoindre ces tables et de sélectionner uniquement les lignes où une ou plusieurs colonnes diffèrent? Je pourrais certainement écrire un script qui crée la requête avec tous les noms de colonnes mais peut-être qu'il existe une solution SQL uniquement.Comment sélectionner des lignes différentes dans deux tables MySQL avec la même structure?
Pour mettre une autre façon: Y at-il un court substitut à ceci:
SELECT *
FROM table_a a
JOIN table_b b ON a.pkey=b.pkey
WHERE a.col1 != b.col2
OR a.col2 != b.col2
OR a.col3 != b.col3 # .. repeat for 30 columns
Votre exemple doit être NATURAL LEFT JOIN pour pouvoir insérer des lignes de a sans correspondance dans b. – Martin
... et vous devez répéter la requête, en échangeant a avec b, afin de trouver des lignes dans b sans correspondance dans a. – Martin
Je vous demande pardon, c'est exact. Je l'édite maintenant. –