PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Ergebnisse ausschließen



jigsore
16-09-2006, 14:42
Mein "Problem":

Ich habe zwei Tabellen. Nun sollen beide verglichen werden mit Ergebnissen die nicht in beiden Tabellen vorkommen.


SELECT tabelle 1 a, tabelle 2 b WHERE a.id = b.id
würde mir eventuell vorhandene gleiche Spalten/Zeilen ausgeben.

Meine Frage ist nun, ob es einen Operator wie != unter MySQL gibt, also:

SELECT tabelle 1 a, tabelle 2 b WHERE a.id != b.id
(Natürlich funktioniert != nicht.)

Gibt es dafür eine (simple) Lösung?

Pingu
16-09-2006, 16:26
RTFM: http://dev.mysql.com/doc/refman/5.1/de/functions.html

cplinux
17-09-2006, 17:40
Um trotzdem noch auf das Problem zu antworten:
Hier führen viele Wege nach ROM.

Ein
SELECT * from tab1 INNER JOIN tab2 on tab1.keyfeld=tab2.keyfeld WHERE ...
würde z.B. Datensätze wieder geben, die in beiden Tabellen vorhanden sind.

Was genau soll hier als Ergebnis rauskommen? Wenn es genau das entgegengesetzte zu dem inner-join-Bsp. sein soll, könnte man das z.B. so schreiben:

( select keyfeld from tab1 WHERE keyfeld NOT IN (SELECT keyfeld from tab1 INNER JOIN tab2 on tab1.keyfeld=tab2.keyfeld) )
UNION
( select keyfeld from tab2 WHERE keyfeld NOT IN (SELECT keyfeld from tab1 INNER JOIN tab2 on tab1.keyfeld=tab2.keyfeld) )

ok, das geht auch einfacher, aber es ist nur ein Bsp.

Gruß
cplinux