MySQL-选择从与不声明

标签: sql MySQL
发布时间: 2017/4/9 20:15:09
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我已与 MySQL 非常奇怪的情况。 我有两张桌子。 第一个表有列 ID (主键),有 ~ 560 000 行。 第二个表有列 IDBook (从第一个表的 ID 列的行),有 ~ 259 000 行。

如果我努力的试着从第一个表中搜索

SELECT * FROM testovoe_zadanie_poisk_knig.book
where id=66764

然后返回一个行。

如果我努力的试着从第二个表中搜索

SELECT * FROM testovoe_zadanie_poisk_knig.autors
where IDBook=66764

然后返回 0 行。

还行。

但是。如果我执行 SQL 脚本

SELECT count(b1.id) FROM testovoe_zadanie_poisk_knig.book b1
where b1.id not in (
select IDBook 
from `testovoe_zadanie_poisk_knig`.`autors`

)

然后返回 0。

为什么呢?

解决方法 1:

是否你 IDBook 列有 null 值吗?

试试这个︰

SELECT COUNT(b1.id) 
FROM testovoe_zadanie_poisk_knig.book b1
WHERE b1.id NOT IN (
  SELECT IDBook 
  FROM `testovoe_zadanie_poisk_knig`.`autors`
  WHERE IDBook IS NOT NULL 
)
官方微信
官方QQ群
31647020