SQL différences entre 2 tables
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- Comparer deux tables sql
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Tables des matières word - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux whatsapp sur un téléphone - Guide
3 réponses
Et pis, avec Oracle, il y a aussi cette possibilité http://www.dba-oracle.com/t_sql_subtract_result_sets.htm Sais pas pour les autres bases de données.
Euh, je ne pige pas moi non plus. Lol. J'avais donné le lien à cause de s simplicité et car je connais le gars (il a d'autres manières de faire moins absconses XD)
Mais, de toute manière, il me semble (à tester) que le SUBTRACT (ou MINUS) devrait marcher si tu fais un SELECT sur plusieurs colonnes (à savoir, toutes les colonnes de ta table).
On arriverait donc à
SELECT col1, col2, col3
FROM t1
MINUS
SELECT col1, col2, col3
FROM t2
union
SELECT col1, col2, col3
FROM t2
MINUS
SELECT col1, col2, col3
FROM t1
Hum. A tester
Mais, de toute manière, il me semble (à tester) que le SUBTRACT (ou MINUS) devrait marcher si tu fais un SELECT sur plusieurs colonnes (à savoir, toutes les colonnes de ta table).
On arriverait donc à
SELECT col1, col2, col3
FROM t1
MINUS
SELECT col1, col2, col3
FROM t2
union
SELECT col1, col2, col3
FROM t2
MINUS
SELECT col1, col2, col3
FROM t1
Hum. A tester
Ben il y a SUBTRACT mais c'est pour avoir les différences sur les PK... Si tu te contenterais de voir les différences au niveau de la PK, une union de 2 subtract ferait l'affaire. MAis comme t'es gourmand, ça se paie :)
++
++
comment ça se fait qu'il n'existe pas de petiote requete toute simple ?
(j'avais essayé de combiner les 2 left join sur chacun des champs union les 2 right join ... mais c'est trop complexe !!)
genre si t'as une table voiture_deluxe avec un champs ID_MARQUE
et une table voiture_pourrie avec un champs ID_MARQUE
si tu veux les marques des voitures_deluxe qui sont pas dans voiture_pourrie ça donne :
select a.ID_MARQUE from voiture_deluxe a where a.ID_MARQUE not in (select b.ID_MARQUE voiture_pourrie b);
en gros tu regarde les a.ID_MARQUE qui sont pas dans le résultats du select de la table voiture_pourrie.
Si on suppose que l'ID_Marque, c'est le champs 2 dans mon exemple
avec ta methode, je ne remonterai pas les lignes ou ID_Marque = 3
Parce que j'aurai un 3 dans chaque table ... mais ils ne correpondront pas à la même voiture