假设有两张表,两张表通过Id关联,A表中包含B表的记录(B表记录比A表少):
A: Id,Name
B:id Address
按照一般的写法:select * from A where A.id not in (select id from B) ,就可以得到在A表中不在B表中的记录。
但是如果B表有些记录的ID字段为空的话,则一条记录都查不出来。 只有在B表上加上 Id is not null 才能查询出记录。很奇怪的!有人可以解释么?
备注:
如果发现自己的sql里查询不出来记录,则要看看表中那个字段里是否有记录为null,如果有,则需要加行 is not null 才行,否则查询不出你想要的记录。