读书人

这样的子查询有没有办法简化?该怎么处

发布时间: 2012-02-24 16:30:39 作者: rapoo

这样的子查询有没有办法简化?
SELECT MasterChannel_ID, Channel_ID, c_Name FROM Sys_Channel WHERE MasterChannel_ID =
(SELECT MasterChannel_ID FROM Sys_Channel WHERE Channel_ID =
(SELECT Channel_ID FROM Sys_ChannelColumn WHERE Column_ID =
(SELECT TOP 1 VerticalChannel_ID FROM Sys_ChannelAndProduct WHERE Product_ID = 14019)
))
ANDRecycle = 0

[解决办法]
改成表关联应该效率会好一些吧
没有测试过

SELECT a.MasterChannel_ID, a.Channel_ID, a.c_Name
FROM Sys_Channel a , Sys_Channel b , Sys_ChannelColumn c ,
(SELECT TOP 1 VerticalChannel_ID FROM Sys_ChannelAndProduct WHERE Product_ID = 14019) d
where a.MasterChannel_ID = b.MasterChannel_ID and b.MasterChannel_ID = c.Channel_ID
and c.Column_ID = d.VerticalChannel_ID and a.Recycle = 0

读书人网 >SQL Server

热点推荐