【发布时间】:2013-11-22 20:11:13
【问题描述】:
[Links]
LinkID, Link
1,http:/link1
2,http:/link2
[Link2Page]
LinkID, PageID
1,1
1,2
1,3
2,3
2,4
2,5
[Pages] PageID, Title, Url , EndPage(bit)
1, title page 1 , http:/page1 , false
2, title page 2 , http:/page2 , true
3, title page 3 , http:/page3 , false
4, title page 4 , http:/page4 , false
5, title page 5 , http:/page5 , true
我想按 endPage desc 列出所有页面的链接和 1 条记录
例如
LinkId , Link , PageID , Title , Url
1 , http:/link1 , 2 , title page 2 , http:/page2
2 , http:/link2 , 5 , title page 5 , http:/page5
...
我为Link2Page中存在的每条记录选择的页面就像
( Select TOP 1 PageID,Title,Url from Pages Order By EndPage Desc )
离我最近的是:
Select LinkID , Link ,
( Select TOP 1 PageID From Pages Where PageID IN
( Select PageID From Link2Page Where Link2Page.LinkID = Links.LinkID )
) as PageID From Links;
但我错过了其余的列( Pages.Title , Pages.Url )等
蹩脚的尝试(?):
选择 LinkID , Link ,
(Select TOP 1 PageID From Pages Where PageID IN (Select PageID From Link2Page Where Link2Page.LinkID = Links.LinkID)) 作为PageID,
(Select TOP 1 URL From Pages Where PageID IN (Select PageID From Link2Page Where Link2Page.LinkID = Links.LinkID)) 作为 URL,
(Select TOP 1 Title From Pages Where PageID IN (Select PageID From Link2Page Where Link2Page.LinkID = Links.LinkID)) 作为标题
来自链接;`
【问题讨论】:
标签: sql sql-server tsql