34,589
社区成员
发帖
与我相关
我的任务
分享
SELECT * FROM pds_buy WHERE p_dt<='2013-09-01' --改成这样就行了
AND p_buyid in (select distinct p_buyid from pds_buy_product where p_id like '%33300%')
--#1.先缓存结果集2到表变量(有主键)
DECLARE @temp TABLE(p_buyid INT NOT NULL PRIMARY KEY)
INSERT @temp(p_buyid)
select distinct p_buyid from pds_buy_product where p_id like '%33300%'
--#2.用下面2种方法均可:
SELECT a.*
FROM pds_buy a
INNER JOIN @temp b
ON a.p_buyid = b.p_buyid
WHERE a.p_dt BETWEEN '1999-01-01' AND '2013-09-01'
SELECT *
FROM pds_buy a
WHERE a.p_dt BETWEEN '1999-01-01' AND '2013-09-01'
AND EXISTS
(
SELECT 1
FROM @temp B
WHERE b.p_buyid = a.p_buyid
)
SELECT *
FROM pds_buy a
inner join (select distinct p_buyid from pds_buy_product where p_id like '%33300%') b
on a.p_buyid=b.p_buyid
WHERE a.p_dt BETWEEN '1999-01-01' AND '2013-09-01'
SELECT * FROM pds_buy t1
WHERE p_dt BETWEEN '1999-01-01' AND '2013-09-01'
AND EXISTS(select 1 from pds_buy_product where t1.p_buyid=p_buyid AND p_id like '%33300%')
--如果p_dt是个聚集索引的话,试试先利用一下
SELECT * from
(
SELECT * FROM pds_buy WHERE p_dt BETWEEN '1999-01-01' AND '2013-09-01'
)
where xxoo