trombe
Goto Top

einfache SQL abfrage

tach auch,

hab eigentlich eine einfache sql abfrage, aber irgendwie bin ich zu doof.

habe zwei tabellen, die ich über 'artikelNr' verknüpfe

nun möchte ich alle artikelNr ausgegeben haben, die nicht in der anderen tabelle vorhanden sind. doppelte artikelnummern nur einmal anzeigen.

eigentlich einfach, oder? aber ich stehe grad voll auf dem schlauch.

(ich habe eine 8 er Oracle. daher nichts mit inner join..)

thx

trombe

Content-Key: 12497

Url: https://administrator.de/contentid/12497

Printed on: April 16, 2024 at 09:04 o'clock

Member: trombe
trombe Jun 30, 2005 at 06:09:44 (UTC)
Goto Top
hey, dass das so schwer ist hätte ich echt nicht gedacht.....
keiner weiß etwas??

den Anfang kenne ich ja:

select tabelle1.ARTIKEL_NR from tabelle1, tabell2 where ........

ja nun einfach nur die ARTIKEL_NR von tabelle1, die in tabelle2 nicht auftauchen.


Hillfeeeeee

many thanks
Member: trombe
trombe Jul 04, 2005 at 13:49:22 (UTC)
Goto Top
... da bin ich echt mal enttäuscht
Member: MadMax
MadMax Jul 28, 2005 at 01:14:08 (UTC)
Goto Top
Da fallen mir auf Anhieb vier Möglichkeiten ein, welches die schnellste ist hängt von den Daten ab und muß man mal ausprobieren:

1. NOT EXISTS
SELECT artikel_nr FROM tabelle1 t1 WHERE NOT EXISTS (SELECT artikel_nr FROM tabelle2 t2 WHERE t2.artikel_nr = t1.artikel_nr);

2. NOT IN
SELECT artikel_nr FROM tabelle1 WHERE artikel_nr NOT IN (SELECT artikel_nr FROM tabelle2);

3. MINUS
SELECT artikel_nr FROM tabelle1 MINUS SELECT artikel_nr FROM tabelle2;

4. OUTER JOIN
SELECT t1.artikel_nr FROM tabelle1 t1, tabelle2 t2 WHERE t1.artikel_nr = t2.artikel_nr (+) AND t2.artikel_nr IS NULL;

Wenn die artikel_nr mehrfach kommt, hilft im Zweifel DISTINCT, also: SELECT DISTINCT artikel_nr FROM ...

Bissl spät, aber fürs nächste Mal weißt Du, wie es geht face-wink
Member: trombe
trombe Jul 28, 2005 at 14:16:33 (UTC)
Goto Top
hey klasse, vielen vielen Dank