SELECT SUM(观看次数)其中id从syndicatedvideos( 选择VideoID的其中VideoID的在(选择syndicatedvideos syndicatedvideoid其中视频ID = 31) 工会 选择从syndicatedvideos syndicatedvideoid其中VideoID的在(选择syndicatedvideos syndicatedvideoid其中视频ID = 31 ))或(31)中的id。如何优化此查询?从视频
如何优化上面的查询?
SELECT SUM(观看次数)其中id从syndicatedvideos( 选择VideoID的其中VideoID的在(选择syndicatedvideos syndicatedvideoid其中视频ID = 31) 工会 选择从syndicatedvideos syndicatedvideoid其中VideoID的在(选择syndicatedvideos syndicatedvideoid其中视频ID = 31 ))或(31)中的id。如何优化此查询?从视频
如何优化上面的查询?
我认为这应该工作。
select sum(viewcount) from video
where id in(select syndicatedvideoid from syndicatedvideos where videoid=31) or or id in (31)
请检查确认。谢谢。
SELECT sum(video.viewcount) FROM video
LEFT JOIN syndicatedvideos sv1 ON video.id=sv1.videoid
LEFT JOIN syndicatedvideos sv2 ON video.id=sv1.syndicatedvideoid
WHERE
sv1.videoid=31 OR
sv2.videoid=31 OR
video.id=31;
select sum(viewcount)
from video
where id in(
select id from(
select videoid as id
from syndicatedvideos
union
select syndicatedvideoid as id
from syndicatedvideos)
where id in(
select syndicatedvideoid
from syndicatedvideos
where videoid=31)
) or id in (31)
select sum(viewcount)
from video v
where exists (
select 1
from syndicatedvideos sv
where (
v.id = sv.videoid
or v.id = sv.syndicatevideoid)
and exists (
select 1
from syndicatedvideos sv2
where sv.videoid = sv2.syndicatevideoid
and sv2.videoid=31)
)
or id = 31.
我改变了:
你已经剪出了一大堆videoids。 – Li0liQ 2009-12-21 07:55:27