如何把exists 改为 left join
原创
©著作权归作者所有:来自51CTO博客作者guochunyang2004的原创作品,请联系作者获取转载授权,否则将追究法律责任
exists方法:
SELECT top 10 * FROM t
WHERE (PlanName LIKE '%关键字%' OR remark LIKE '%关键字%'
OR exists(SELECT pp.tpID FROM pp
JOIN points (NOLOCK) p ON p.id = pp.pointID
where p.PointName LIKE '%关键字%' and pp.tpID=t.ID
)
)
left join方法:
;WITH a AS(
SELECT distinct pp.tpID
FROM pp JOIN p ON p.id = pp.pointID
where p.PointName LIKE '%关键字%'
)
SELECT top 10 * FROM t LEFT JOIN a ON t.ID = a.tpID
WHERE (PlanName LIKE '%关键字%' OR remark LIKE '%关键字%' OR isnull(a.tpID,0) >0)