# SQL Abfrage - zwei tabellen vergleichen.



## Harry45676 (8. Sep 2010)

hallo,
ich habe zwei tabellen, die ich vergleichen möchte. ich scheiter jedoch an der abfrage.
Tabelle1:
1 - a
1 - b
2 - a
6 - c
3 - NULL
4 - a
5 - NULL

Tabelle2:
1 - a
1 - b
8 - a
2 - a
3 - NULL
4 - a
5 - NULL

Ich würde gerne alle ID's haben, die in beiden tabellen gleich sind und deren wert in spalte 2 gleich sind.
ich hoffe verstädnlich ausgedrückt 

hier meine testabfrage. Eiglt alles wunderbar. leider ignoriert er bei der Abfrage die "Null" spalten.

SELECT info_0021_ret.gdct_id , info_0306_ret.gdct_id , info_0021_ret.cliid  FROM info_0021_ret, info_0306_ret WHERE  info_0021_ret.cliid  = info_0306_ret.cliid  AND info_0021_ret.objps  = info_0306_ret.objps;


So, mit dieser abfrage bekomme ich folgendes Ergebnis:

1 - a
1 - b
2 - a
4 - a
------------------

3 und 5 sollten aber auch drin sein, weil es beide id's dort gibt und beide "null" sind. jedoch scheint er das bei der abfrage zu ignorieren. Wie kann ich sowas mit einbeziehen ?


danke !!


----------



## SlaterB (8. Sep 2010)

die Abfrage ist aber mächtig mies zu lesen, fällt dir das nicht selber auf?
zumindest fürs Forum könntest du ja etwas schöneres draus machen, z.B.

SELECT a.id, a.data FROM tab1 a, tab2 b
WHERE a.id = b.id and a.data = b.data

mit null-Werten dann geht bestimmt

SELECT a.id, a.data FROM tab1 a, tab2 b
WHERE a.id = b.id and ((a.data = b.data) or (a.data is null and b.data is null))


----------



## Harry45676 (8. Sep 2010)

hi,
sorry fuer die miese ausführung.

deine lösung ist super und funktioniert. 

Vielen Dank !!


----------

