问题是这样的:
假如我手上有2张表如下
表1
+------+
| b    |
+------+
| b1   |
| b2   |
| b3   |
| b4   |
+------+
表2
+------+
| b    |
+------+
| b1   |
| b2   |
| b3   |   |
+------+
怎么用Mysql语句来描述 (表1 - 表2) 呢?
我想要的结果是
+------+
| b    |
+------+
| b4   |
+------+

解决方案 »

  1.   

    select * from 表1 where b not in (select b from 表2)select * from 表1 where not exists (select b from 表2 where b=表1.b)select 表1.*
    from 表1 left join 表2 on 表1.b=表2.b
    where 表2.b is null看你主键及记录数量,速度略有差别
      

  2.   

    select *
    from 表1
    where not exists(select * from 表2 where 表1.b=表2.b)
      

  3.   

    我原来也是想用 not in的,不过我这个版本的Mysql不支持,我查了下貌似mysql也没有exists这个关键字吧
    (ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery')
    不过left join可以用
    我一直没想到用
      

  4.   

    mysql貌似没有exists这个关键字吧!