2 Tabellen vergleichen
-
Hi, vielleicht kann mir hier wer helfen.
Ich habe 2 Tabellen:
| spalte1 | spalte2 | spalte3 | spalte4 | spalte5 | +---------+---------+---------+---------+---------+ | 1 | 2 | 3 | 4 | 5 | | 10 | 20 | 30 | 40 | 50 | | 5 | 10 | 20 | 35 | 40 | | 2 | 3 | 5 | 7 | 8 |
| spalte1 | spalte2 | spalte3 | spalte4 | spalte5 | +---------+---------+---------+---------+---------+ | 1 | 4 | 3 | 4 | 5 | <-- | 10 | 20 | 30 | 40 | 50 | | 5 | 10 | 20 | 35 | 40 | | 2 | 3 | 5 | 9 | 8 | <-
row 1 spalte 2
und
row 4 spalte 4 ist jetzt anders
Jetzt brauche ich eine Abfrage die mir genau diese 2 Zeilen so wie sie in der zweiten tabellen sind, zurückliefert.
Ich habe nicht einmal einen Ansatz, hat wer vielleicht eine Idee?
Gruß Gustl
-
Tip für einen sehr simplen Ansatz:
Du möchtest alle Zeilen für die gilt dass a.spalte1 != b.spalte1 oder a.spalte2 != b.spalte2 oder …
-
Und such nach "not equal join".
-
Du musst erstmal definieren, wann die zwei Zeilen überhaupt gleich "sein sollten".
D.h. im Idealfall hast du einen eindeutigen Key der die Zeilen identifiziert.Über diesen kannst du die Tabellen zusammenjoinen, und dann einfach mit WHERE gucken wo es unterschiedliche Spalten gibt.
Also
SELECT t1 INNER JOIN t2 ON t1.key = t2.key WHERE t1.field1 != t2.field1 OR t1.field2 != t2.field2 ...
-
Wenn du Oracle benutzt dann kannst du folgendes machen:
select * from table_1 minus select * from table_2
bzw.
select * from table_2 minus select * from table_1
--> Liefert dir die Zeilen, die sich unterscheiden.