私は、以下の3番目のクエリの結果にid = 732が含まれることを期待しています。それはしません。何故ですか?MySQL SELECT xはどこからではない(SELECT x FROM b) - 予期しない結果
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)
テーブルemail.idには3つのNULLエントリがあり、match.idにはNULLエントリはありません。
フルテーブル/クエリが、私は少しMySQLはヌルを扱うが、ここでは試して二つのことだ方法の詳細とタッチの外だhttp://pastebin.ca/1462094
OPのケースですか?私の理解は、 "一致が見つからず、リスト内の式の1つがNULLである場合" 732が見つかるはずなので、その句を無効にする必要があるということです。 – Eric
@Eric:732はメールに見つかりません。 – Quassnoi
@Quassnoi:そうだよ、脳死: – Eric