Comparaison de deux tables sur deux champs - SQL/NoSQL - Programmation
Marsh Posté le 21-04-2011 à 11:53:05
Code :
|
Marsh Posté le 21-04-2011 à 14:18:51
impec ça marche, j'avais du mal à saisir l'utilisation du LEFT JOIN, c'est maintenant on ne peut plus clair.
Merci
Marsh Posté le 21-04-2011 à 11:37:51
Bonjour à tous,
Je suis sous MySQL 5.1
J'essaye de faire une requête visant à comparer deux tables, strictement identiques en structures.
La base de comparaison est une clé sur deux champs (id_client, id_article) et je souhaite donc récupérer la clé sur deux champs des enregistrements qui sont dans la table 1 et pas dans la table 2, mais sans l'inverse, c a d les champs qui sont dans la table 2 et non dans la table 1.
La requête 'parfaite' serait :
SELECT * FROM table1
MINUS
SELECT * FROM table2
Mais pas de Minus en MySQL
J'ai donc essayé ce que je pense être un équivalent :
SELECT * FROM table1
WHERE NOT EXISTS
(SELECT * FROM table2)
ou
SELECT * FROM table1
NOT IN (SELECT * FROM table2)
la première ne me retourne aucun enregistrement alors qu'il y a bien deux enregistrements de plus dans la table1 que dans la table 2
la seconde me retourne une erreur de syntaxe. Mais celle ci je pense qu'il manque un WHERE, mais je ne sais quelle condition mettre vu que la clé porte sur id_client et id_article
Qu'est ce qui serait le mieux comme requete ? quelles sont mes erreurs ?
Merci pour vos explications