Mein Problem ist extrem ähnlich wie diese: Select rows which are not present in other tableZeilen einfügen in eine Tabelle, die nicht existieren, aus einer anderen Ansicht
unterscheidet sich aber dadurch, dass ich Daten aus einer Ansicht bin abrufen, anstatt einen anderen Tisch. Allerdings ist die Unterauswahlabfrage keine Datensätze zurück, und ich habe die INSERT INTO die SELECT-Abfrage
Hier zu testen weggelassen ist, was ich so weit gekommen:
SELECT SourceT.*, DestT.Column1, DestT.Column2
FROM
ViewA SourceT
LEFT OUTER JOIN
TableA DestT
ON
SourceT.Column1 = DestT.Column1 AND
SourceT.Column2 = DestT.Column2 AND
SourceT.Column3 = DestT.Column3 AND
**** alles funktioniert fINE BIS HIER
WHERE
DestT.Column1 = NULL AND
DestT.Column2 = NULL AND
DestT.Column3 = NULL
Wenn ich die WHERE-Bedingungen auslassen, gibt es alle Datensätze aus Source der zusammen mit Werten von NULL für die Datensätze nicht in DestT gefunden - das funktioniert gut. Wenn ich die WHERE-Klausel am Ende hinzufüge (selbst bei nur einer Bedingung), gibt sie Nullwerte zurück.
Ich kann versuchen, DestT.Column1 = NULL oder DestT.Column1 <> NULL - immer noch nichts zurückgegeben wird. Meine Abfrage gibt NULL-Werte korrekt zurück, aber die WHERE-Bedingung funktioniert nicht oder lässt keine Daten durch.
Irgendeine Idee, was hier passiert? Im Wesentlichen versuche ich, Zeilen aus einer Sicht in TabelleA einzufügen, wo sie nicht bereits existieren, basierend auf einer Anzahl von Bedingungen.
Danke
Jeder? Ich habe auch versucht die Bedingung Hinzufügen DestT.Column1 = NULL nach LINKS ohne Glück JOIN:/ – SomeOne
Ich habe es ohne die innere Arbeit bei und Hinzufügen des folgenden: WO NICHT VORHANDEN \t (SELECT * FROM Tabelle \t WHERE ... Bedingungen) Aber verdammt die Abfrage ist langsam @ nur über 2 Minuten für 10.000 Datensätze in jeder Tabelle? – SomeOne