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值
建一个对应关系表是否可以提高速度。
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值
建一个对应关系表是否可以提高速度。
http://topic.csdn.net/u/20080509/10/c9bee345-3f57-4632-a84d-1673b1e96bf8.html有讲到 left join.
-->
但是可能效率也是很底.
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
加索引看下会不会好点.