verwendetes Datenbanksystem: Oracle
Ich benötige Datensätze, die nicht in einer anderen Tabelle vorkommen.
Select * from tabelle1 t1
where <Bedingung>
and t1.kundennr not in
(select kundennr from tabelle2)
Tabelle 2 ist sehr groß. Ist das optimal gelöst mit dem subselect, denn ich brauche ja nicht alle Kundennummern von Tabelle 2?
Hallo,
alternativ einen LEFT OUTER JOIN verwenden und alle Zeilen ausfiltern, wo keine Verknüpfung gefunden wurde:
SELECT * FROM tabelle1
LETT OUTER JOIN tabelle2 on tabelle2.Spalte=tabelle1.Spalte
WHERE tabelle2.Spalte is null
Wichtig ist in jedem Fall ein Index auf der Vergleichsspalte in der großen Tabelle.
Nobody is perfect. I'm sad, i'm not nobody 🙁
Hi,
geht mit beiden Vorschlägen, MINUS heißt in manchen DBs "except".
Gruß
f_i´gy
Da du offensichtlich nicht der erste bist, der vor diesem Problem steht, beachte bitte [Hinweis] Wie poste ich richtig? Punkt 1.1 (sowie 1.1.1 und 3 ==> Titel geändert).