39 Stimmen

MySQL SELECT x FROM a WHERE NOT IN ( SELECT x FROM b ) - Unerwartetes Ergebnis

Ich erwarte, dass das Ergebnis der dritten Abfrage unten id=732 enthält. Das tut es aber nicht. Woran liegt das?

mysql> SELECT id FROM match ORDER BY id DESC LIMIT 5 ;
+------------+
|         id |
+------------+
|        732 | 
|        730 | 
|        655 | 
|        458 | 
|        456 | 
+------------+
5 rows in set (0.00 sec)

mysql> SELECT id FROM email ORDER BY id DESC LIMIT 5 ;
+------------+
|         id |
+------------+
|        731 | 
|        727 | 
|        725 | 
|        724 | 
|        723 | 
+------------+
5 rows in set (0.00 sec)

mysql> SELECT \* FROM match WHERE id NOT IN ( SELECT id FROM email ) ;
Empty set (0.00 sec)

Es gibt drei NULL-Einträge in der Tabelle email.id, und keine NULL-Einträge in match.id.

Die vollständige Tabelle / Abfragen finden Sie unter http://pastebin.ca/1462094

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X