日期:2014-05-19  浏览次数:20454 次

关于一个SQL删除语句的写法
表A:   id     a1   a2   a3   a4
          1       1     ..   .     .
          2       12   ..   .     .
          3       23   ..   .     .
          4       44   ..   .     .  

表B:   id     b1   b2   b3   b4
          1       1     ..   .     .
          2       4     ..   .     .

现在我想:把表A中的a1的值在表B中找不到相同的b1的值的数据全部删除(如上图所示就是要把表A中a1=12,23,44   的那三条数据全部删除掉),那么SQl语句应该怎么写?

------解决方案--------------------
Delete From A Where a1 Not In (Select b1 From B)
------解决方案--------------------
Delete A From A Where Not Exists (Select b1 From B Where b1 = A.a1)