Vergleich zwischen zwei Tabellen

Fragen und Probleme rund um die Abfragespache SQL.

Vergleich zwischen zwei Tabellen

Beitragvon Sauerkraut » Do 5. Jun 2008, 10:02

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.
Sauerkraut
Benutzer
 
Beiträge: 89
Registriert: Mi 24. Jan 2007, 20:04

Beitragvon akretschmer » Do 5. Jun 2008, 10:09

Sauerkraut hat geschrieben: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.




EXCEPT, INTERSECT:

PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: Combining Queries

Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5938
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon Sauerkraut » Do 5. Jun 2008, 10:13

EXCEPT und INTERSECT übergehen aber Daten die doppelt vorkommen.
Sauerkraut
Benutzer
 
Beiträge: 89
Registriert: Mi 24. Jan 2007, 20:04

Beitragvon akretschmer » Do 5. Jun 2008, 10:16

Sauerkraut hat geschrieben:EXCEPT und INTERSECT übergehen aber Daten die doppelt vorkommen.


auch mit der Option ALL?

Andreas
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5938
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon Sauerkraut » Do 5. Jun 2008, 10:20

Oh man... hab das mit dem ALL total überlesen... Danke
Sauerkraut
Benutzer
 
Beiträge: 89
Registriert: Mi 24. Jan 2007, 20:04

Beitragvon Sauerkraut » Do 5. Jun 2008, 10:44

Allerdings gibt es Probleme wenn man nur eine bestimmte Anzahl an Spalten vergleichen will, aber als Ausgabe dann die vollständige Spaltenzahl erhalten will.
Sauerkraut
Benutzer
 
Beiträge: 89
Registriert: Mi 24. Jan 2007, 20:04

Beitragvon akretschmer » Do 5. Jun 2008, 10:49

Sauerkraut hat geschrieben: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
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5938
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany


Zurück zu SQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron