Hi: Ich kämpfe mit dem Abrufen nur der E-Mails von meiner MarketingImport-Tabelle, die nicht in meiner HardBounce-Tabelle vorhanden sind.MySQL (OSX) LEFT JOIN funktioniert nicht wie erwartet
Ich versuchte verschiedene Ansätze für die LINKE JOIN, aber ich bekomme immer die gesamte marketingTable (alle 300K Datensätze). Ich sollte nur ungefähr 220K Datensätze bekommen, da es in meiner hardBounce-Tabelle ungefähr 80K "schlechte" E-Mails gibt: Diese sollten von meinen Ergebnissen ausgeschlossen sein.
Ich habe auch versucht, WHERE mit AND (um es Teil der ON-Klausel zu machen), aber die gleichen Ergebnisse erhalten.
Das ist mein SQL:
SELECT marketingImport.email FROM marketingImport
LEFT JOIN hardBounce ON marketingImport.email = hardBounce.email
WHERE hardBounce.email IS NULL;
Tables:
-marketingImport enthält ein Feld 'E-Mail', die eine varchar (255), Nullable-Index
-hardBounce ein einzelnes Feld enthält 'email' was ist ein varchar (255), Nullable UNIQUE Index (nicht PK)
Was vermisse ich? Ich habe alle Beiträge gelesen ... und meine Augen wässern jetzt ...
Danke.
Es scheint, dass alle vorgeschlagenen Methoden ALLE Datensätze aus der richtigen Tabelle zurückgeben und die Bedingung NOT IN/NOT EXISTS/IS NULL ignorieren. Die Leistung ist besser am besten mit NOT IN, dann LINKER JOIN, dann nicht EXISTS --- aber ich bekomme immer noch nicht meine Ergebnisse :(. –
Mystery aufgelöst. Es scheint, dass meine E-Mail-Feld HardBounce-Tabelle '0D' über alle 80K angehängt hatte Dies ist die wahrscheinlichste Fehlfunktion. Dieser Anhang ist wahrscheinlich während des Exports/CSV/Import-Vorgangs aufgetreten. Ich UPDATE alle Zeilen mit einer REPLACE-Klausel. Dann, Alle unten aufgeführten Vorschläge funktionierten, danke für Hilfe. Ich bleibe beim LINKEN JOIN, Das funktioniert jetzt wie angekündigt (auf MySQL) ... –
Das ist SEHR gut zu hören, ich nahm an, dass es ein Datenproblem gewesen sein muss, da die 2 Fragen unten nicht funktionierten!;) Froh, dass Sie es haben sortiert ... der LEFT JOIN ist wahrscheinlich eine gute Wahl dafür. – Nerdwood