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-ID: 12497

Url: https://administrator.de/forum/einfache-sql-abfrage-12497.html

Ausgedruckt am: 25.12.2024 um 07:12 Uhr

trombe
trombe 30.06.2005 um 08:09:44 Uhr
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
trombe
trombe 04.07.2005 um 15:49:22 Uhr
Goto Top
... da bin ich echt mal enttäuscht
MadMax
MadMax 28.07.2005 um 03:14:08 Uhr
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
trombe
trombe 28.07.2005 um 16:16:33 Uhr
Goto Top
hey klasse, vielen vielen Dank