and not exists...was mache ich falsch
-
Hallo ich habe einen Select, allerdings habe ich in beiden Tabellen werte identische werte und will den Wert nur einmal darstellen. Irgendwie komme ich mit der not exists sache nicht zurande.
select distinct spalte1, 0 as disabled from tabelle1 where filename = 'test.xls' and filepath = 'Ordner1\Ordner2\' and not exists(select distinct spalte1, 1 as disabled from tabelle2 where filename = 'test.xls' and filepath = 'Ordner1\Ordner2\' and Spalte3 = 1)
ich bekomme nämlich jetzt gar keinen Wert mehr... warum?
-
Deine Abfrage ist soweit richtig formuliert.
Wahrscheinlich stimmen nur die Werte in der Where-Bedingung nicht.
Probier die zwei Selectanweisungen mal jeweils einzeln aus, ob etwas rauskommt. Wenn das zweite select z.B. einen Satz liefert, dann ist klar warum nichts rauskommt.
-
ja der liefert einen. das heißt doch der wert ist da, also soll der Datensatz aus dem ersten selec nicht genommen werden oder hab ich das falsch verstanden.
-
Wenn die Selectbedingung zu NOT EXISTS einen Satz liefert, dann kommt nichts bei der Abfrage raus.
Aeris1 schrieb:
ja der liefert einen. das heißt doch der wert ist da, also soll der Datensatz aus dem ersten selec nicht genommen werden oder hab ich das falsch verstanden.
Stimmt, deswegen bekommst du keinen Wert mehr.
-
Vielleicht hilft dir der Ansatz hier weiter:
select distinct spalte1, 0 as disabled from tabelle1 where filename = 'test.xls' and filepath = 'Ordner1\Ordner2\' and not exists(select distinct spalte1, 1 as disabled from tabelle2 where filename = [b]tabelle1.filename [/b] and filepath = [b]tabelle1.filepath [/b] and Spalte3 = 1)
-
Vielleicht hilft dir hier eher das 'NOT IN' Subquery:
...AND spalte1 NOT IN(SELECT DISTINCT spalte1 FROM...
oder du musst innerhalb des NOT EXISTS die beiden Queries in Abhängigkeit voneinander bringen, sonst ergibt das eh keinen Sinn
Edit: so wie Fincki das macht
-
Das hab ich jetzt beides probiert. Aber ich bekomme immer nur die Werte aus tabelle1 ich hätte aber den einen Wert den ich aus dem 2ten select der tabelle2 bekomme und alle anderen werte aus der anderen tabelle? muss ich ihn dann umbauen?
-
ich habs ich habs ich habs...danke danke danke euch beiden
-
Bitte, wenn man es raushat ist es meistens ganz einfach nachher
-
Stimmt manchmal braucht man nur einen Schups in die richtige Richtung.