折雨的天空
SQL中not in的一个坑人的地方
2013-1-24 我好笨


select * from A where id not in (select id from B)


 当这样一条语句出现时,一般情况下不会出什么问题


但是当表B中存在空值时如NULL时,就是遇到问题,查询不到想要的数据


因此,上面的语句可以用NOT EXISTS代替,也可以给语句加一个条件如


select * from A where id not in (select id from B where id not null)


不过这种错误在设计表时应该避免的,Id应该是作为主键存在的,或者不能为空的字段

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容