首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-02-24 
这样的子查询有没有办法简化?SELECTMasterChannel_ID,Channel_ID,c_NameFROMSys_ChannelWHEREMasterChanne

这样的子查询有没有办法简化?
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

热点排行
Bad Request.