Vergleich zwischen zwei Tabellen

Ich suche nach einem korrekten Vergleich zwischen zwei Tabellen der mir erst mal alle Daten ausgibt die in beiden Tabellen gleich sind ( auch Daten die doppelt vorkommen) und dann die Daten die nicht in der anderen Tabelle vorhanden sind.

Die erste Abfrage löse ich mit Inner Join
Beispiel:

SELECT a.wert1, a.wert2, a.wert3 FROM Tabelle1 AS a
INNER JOIN Tabelle2 AS b ON
(((a.wert1 = b.wert1) OR (a.wert1 IS NULL AND b.wert1 IS NULL)) AND ((a.wert2 = b.wert2) OR (a.wert2 IS NULL AND b.wert2 IS NULL)) AND
((a.wert3 = b.wert3) OR (a.wert3 IS NULL AND b.wert3 IS NULL)) )

Nur jetzt kriege ich nicht das genaue Delta zwischen Tabelle1 und Tabelle2 hin, hab da schon mehrere Möglichkeiten probiert.

EXCEPT, INTERSECT:

PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: Combining Queries

Andreas

EXCEPT und INTERSECT übergehen aber Daten die doppelt vorkommen.

auch mit der Option ALL?

Andreas

Oh man… hab das mit dem ALL total überlesen… Danke

Allerdings gibt es Probleme wenn man nur eine bestimmte Anzahl an Spalten vergleichen will, aber als Ausgabe dann die vollständige Spaltenzahl erhalten will.

Mag sein, dann halt joinen. Man könnte da die ctid verwenden.

Andreas