本帖最后由 cnaaa8 于 2013-07-01 09:50:19 编辑

解决方案 »

  1.   

    你的SQL语句应该可以啊,什么问题,举例说明
      

  2.   

    语句本身没什么问题。创建索引如下。create index yyyyy on A(come);
    create index xxxxx on B(id);
      

  3.   

    我的是少写了个条件b.web=4 需求是先查询a表come=3的数据(全部字段),然后得到相应的id(这里为4),然后再表B中(字段comment,web)查询web=4且aid=4(aid为A表中得到id的值)的组成一行,如果B表中没有web=4或者aid=4这条数据,相应的字段也列出来,但是为空id,kw,come,comment,web
    4  富士 3    这样的形式 
      

  4.   

    SELECT a.*,b.comment,b.webFROM `A` a LEFT JOIN `B` b on a.id=b.WEB
    AND a.id=b.AID WHERE a.come=3
      

  5.   

    select a.*,b.comment,b.web
    from A,B
    where A.id=B.aid and A.come=3 and B.web=4;
    连接条件应该用a.id=B.aid另外B的aid加索引   a.id和b。id应该是自增主键吧
      

  6.   

    楼主的sql关联条件不对吧,你说的是【然后再表B中(字段comment,web)查询web=4且aid=4(aid为A表中得到id的值)】同意4楼的,不过我觉得改成同表比较效率是不是更高一些,完整语句如下:SELECT a.*,b.comment,b.web
    FROM `A` a LEFT JOIN `B` b on a.id=b.aid AND b.aid=b.web
    WHERE a.come=xxx
      

  7.   

    看你的这个表结构像是主表和明细表的关系,所以个人觉得,如果建索引,b表的索引应该建在aid会更有用。
      

  8.   

    select a.*,b.comment,b.web
    from A,B
    where A.id=B.aid and A.come=3 and B.web=4;