我自己写了一个联查询,结果查询b表时候,把mysql进程占用了100%cpu  b表数据在2万条左右。。 表a:
字段:   name    sex    chengji   fenshu   ....
         aa      nan    dsf         dfd
        bb       .......................
        cc       .......................
        dd     .......................表b:
       name     leibie             jilu  .....
        aa      nan                dfd
        bb       .......................
        aa       ..................  dfd.
        ccc    .......................
        aa      nan                 dfd
        bb       .......................
        aa       .......................
        ccc    .......................要求:联动查询:先查询表b  查询所有字段name和字段jilu内容相同的记录并且记录总数<3所有记录。。
查询到后,读取name ,根据name值在去查询数据库a中。。select *  后 把读取的a表内容输出。。(这里读取的是字段sex是nan的所有记录)
请高手多谢!!

解决方案 »

  1.   

    select * from b B1 INNER JOIN A
    ON A.NAME=B1.NAME
    where 3>(select COUNT(*) FROM b WHERE B1.name=name AND B1.jilu=jilu)
    AND A.sex='nan'在B的namE、jilu上建立索引
      

  2.   

    select a.*
    from a left join b on a.name=b.name and a.fenshu=b.jilu
    group by a.name
    having count(*)<3
      

  3.   

    回复3楼版主::a.fenshu=b.jilu这个他们不等的。。a表和表只有name是一样的。其余内容都不一样。。