Seltsames passiert. Ich habe ein Problem mit meinem MySQL Community Server 5.1 installiert auf Windows NICHT IN Abfrage. Wenn ich diese Abfrage tun:MySQL "NICHT IN" funktioniert nicht
select *
from table1
where date >= "2012-01-01";
liefert 582 Zeilen
select *
from table1
where date >= "2012-01-01"
and the_key in (select some_key from table2);
Renditen 15 Reihen
so würde ich erwarten, dass die folgende Abfrage 582 zurückkommen würde - 15 = 567 Zeilen
select *
from table1
where date >= "2012-01-01"
and the_key not in (select some_key from table2);
gibt 0 Zeilen zurück
Warum gibt diese letzte Abfrage keine Zeilen zurück?
** Schlüssel ** ist ein Schlüsselwort in SQL Versuchen Sie, es mit Backticks zu zitieren –
Kann 'some_key' null sein? –
Versuchen Sie 'wo (Datum> =" 2012-01-01 ") und (Taste nicht in ...)'; MySQL-Dokumente sind vage auf dem 'not in'-Operator und geben an, dass' expr NOT IN (Wert, ...) dasselbe ist wie NOT (expr IN (Wert, ...)) ', was zu 'NOT' führen könnte. (Datum> = "2012-01-01" und Schlüssel) IN (...)) 'in Ihrem Fall – lanzz