私は2つのテーブルを持っていますテーブル1とテーブル2です。そして、彼らのコンテンツnull値が存在する場合、Mysqlは値を返しません。サブクエリ
mysql> select id from table1;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
+------+
4 rows in set (0.00 sec)
mysql> select id from table2;
+------+
| id |
+------+
| 301 |
| 2 |
| NULL |
+------+
3 rows in set (0.00 sec)
私はmysqlのコンソールで以下のクエリを打ったとき、それは常に空のセットを返し
select id
from table1
where id
not in (select id from table2);
空のセット(0.00秒)
が時に理由がある次のようにサブクエリにNULL値がありますにとにはないには故障?
私はセットで
select id
from table1
where id
not in (select id from table2 where id is not null);
+------+
| id |
+------+
| 1 |
| 3 |
| 4 |
+------+
3行(0.00秒)
ちょうど事前に
感謝を知りたい以下のクエリを使用して、それを解決してきました:)
編集:This question空気を少しでも取り除こうとしますが、十分ではありません
[MYSQL INキーワードがNULL値を考慮しない理由](0120-1810391/why-mysql-in-keyword-not-considering-null-values) –
ようこそ* Three-Valued-Logic *:https://en.wikipedia.org/wiki/Three-valued_logic#Application_in_SQL – dnoeth