SELECT *
FROM gw G LEFT OUTER JOIN
          (SELECT qpgwid
         FROM ld
         WHERE qpzhiwu LIKE '%总工程师%') L ON G.gwid = L.gwid
WHERE (G.qpld LIKE '%总工程师%') AND (L.qpgwid IS NULL) OR
      (G.moreqpld LIKE '%总工程师%') AND (L.qpgwid IS NULL)表gw是主表数据少,表ld的数据多,是gw的10倍以上,请帮助提高速度。
表gw中字段
qpld                                          moreqpld
党委书记, 纪委书记, 副段长                党委书记, 纪委书记, 副段长,总工程师并且字段qpld有null值
建一个对应关系表是否可以提高速度。

解决方案 »

  1.   

    看下:
    http://topic.csdn.net/u/20080509/10/c9bee345-3f57-4632-a84d-1673b1e96bf8.html有讲到 left join.
      

  2.   

    把like改用charindex试下,
    -->
    但是可能效率也是很底.
      

  3.   

    --try
    SELECT * FROM gw G
    left outer join (select qpgwid from id where charindex(qpzhiwu,'总工程师')>0 ) L on G.gwid = L.gwid
    where charindex(G.qpld + G.moreqpld ,'总工程师')>0 AND L.qpgwid IS NULL
      

  4.   

    L.gwid 
    加索引看下会不会好点.
      

  5.   

    用 LEFT JOIN 比 子查询 可能会好些.