第一张表 A
id     title
1      你好啊啊,我是一个兵
2      百度一下你就不知道
3      Goole才是牛B哥哥
第二章表 B
id     aid   tag
1      1     你好
2      1     兵
3      3     Google关联    A.id=b.aid
现在要找出A表中有 而B表中没有对应数据的数据
比如 当前数据要找出的是
2      百度一下你就不知道
帮忙写下sql
SELECT a.id,a.title,b.id,b.aid,b.tag FROM A a LEFT JOIN B b ON a.id=b.aid WHERE 1=1 LIMIT 0,10
这样会将a,b中对应的也找出来,我现在不想找已经有的,要找a中有 b中没有对应的数据

解决方案 »

  1.   

    SELECT a.id,a.title,b.id,b.aid,b.tag FROM A a LEFT JOIN B b ON a.id=b.aid WHERE 
    b.aid is null LIMIT 0,10
      

  2.   

    select * from a where not exists (select 1 from b where aid =a.id)
      

  3.   

    select * from a where id not in (select aid from b)
      

  4.   

    我测试了3位大哥的代码,都达到了要求,不过经过测试效率排名依次是:ACMAIN_CHM,jaylongli,wwwwb
    wwwb可能是left join的原因吧,效率会稍微有点慢,只查20条记录都要1秒多,还是ACMAIN_CHM老大的好
    不过还是要非常感谢各位老大的帮忙!