学海无涯

网络是最好的老师

统计

常用链接

留言簿

.net

AOP

goold site

js

Sql

设计模式

友朋自网络来

阅读排行榜

评论排行榜

利用sql2005的新特性实现根据子表条件得到的主表键且按其排序取出对应主子表记录的方法

 

假如有两个关联表,是一对多关系的主子表。如下:

主表


CREATE TABLE [dbo].[CourseT](
    
[CourseID] [int] IDENTITY(1,1NOT NULL,
    
[CourseName] [nchar](10) COLLATE Chinese_PRC_CI_AS_WS NULL
ON [PRIMARY]


字表

CREATE TABLE [dbo].[Broad](
    
[BroadID] [int] IDENTITY(1,1NOT NULL,
    
[CourseID] [int] NULL,
    
[BroadName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS_WS NULL
ON [PRIMARY]

如果数据取自CourseT表,我们想查询Broad表中记录对应的CourseT表中的记录,且按CourseID的降序只取一次,在SQL2005中SQL如下

with temp as 
(
select distinct courseid from Broad 
),
 temp2 
as
(
    
select courseid , ROW_NUMBER() OVER(ORDER BY courseid descAS row_num
     
from temp 
)
select CourseT.* from  CourseT, temp2 where courset.courseid=temp2.courseid order by row_num


如果数据取自CourseT和Broad表,我们想查询Broad表中记录对应的CourseT表中的记录,且按CourseID的降序只取一次,我们可以如下写:

with temp as
(
  
select courseid, broadid, row_number() over(order by courseid desc, broadid desc  ) as rownum from broad
),
temp2 
as
(
select temp.courseid, temp.broadid from temp where rownum=1
union
select temp.courseid, temp.broadid from temptemp as temp0 where temp.rownum = temp0.rownum+1 and temp.courseid <> temp0.courseid
)

select CourseT.*, broad.broadid, broad.broadname from  CourseT, broad, temp2
 
where courset.courseid=broad.courseid and temp2.courseid = courset.courseid and temp2.broadid = broad.broadid order by 
broad.courseid 
desc ,broad.broadid desc

经牛人宪哥帮忙,又想出一个更好的方案如下:
select CourseT.CourseID,CourseName,b.BroadID,b.BroadName
 
from CourseT,broad b,(select max(broadid) bid,CourseID from broad group by courseid ) t
  
where
   CourseT.CourseID
=b.CourseId and b.CourseID=t.courseid and b.broadid=t.bid

posted on 2006-12-30 11:17 来问(zljGood@hotmail.com) 阅读(1877) 评论(8)  编辑 收藏 网摘 所属分类: SQL技术

评论

#1楼 2006-12-30 13:04 Jason Cui      

酷!效率怎么样?
  回复  引用  查看    

#2楼 2006-12-30 13:28 高海东      

sql好方法   回复  引用  查看    

#3楼 2006-12-30 13:29 bing717[未注册用户]

select distinct a.courseid,coursename from courset a
inner join
broad b
on a.courseid = b.courseid
order by a.courseid desc

能说出你的应用比这个好的理由吗?
  回复  引用    

#4楼 2006-12-30 13:44 有些伤感      

http://www.cnblogs.com/ilovejolly/archive/2006/09/29/517907.html">http://www.cnblogs.com/ilovejolly/archive/2006/09/29/517907.html   回复  引用  查看    

#5楼 2006-12-30 22:00 ml80[未注册用户]

好东东,谢谢分享!   回复  引用    

#6楼 2006-12-31 08:46 www[匿名][未注册用户]

http://www.superdotati-transessuali.eofoj16.info casalinche hard http://www.fige-giovani-gratis.eofoj16.info bulma kamasutra http://www.lazio-merda-mp.rofoj16.info baciami il culo http://www.anzwers-anziane.rofoj16.info video bionde http://www.mutande-buffe.gofoj16.info porno segugio http://www.fottere-uomini-negri.gofoj16.info foto nudo http://www.vip-mutande.fofoj16.info fotomontaggi dei sedere http://www.hunziker-fotomontaggi.fofoj16.info antonela clerici nuda http://www.minifaldas-oops.wofoj16.info segretarie troie gratis http://www.brune-fighe.wofoj16.info loredana bontempi movie   回复  引用    

#7楼 2007-04-19 07:35 bdf[未注册用户]

http://www.ridiculous-fighette-amore.eisktiri66.info comico torride sex http://www.video-bere-sborra.disktiri66.info foto infermiere troie http://www.coppie-asiatiche.risktiri66.info cutie idraulico scopata http://www.casalighe-mutande-foto.cisktiri66.info avventuroso ragazze pompino http://www.bellezza-fighetta-merda.xisktiri66.info sexy badroom   回复  引用    

#8楼 2007-05-07 01:12 sesso coppie spiaggia[未注册用户]

http://www.sborrate-calde.eusee.info sublime strip http://www.r-vacca.eusee.info anziane femdom http://www.stimolatori-per-clitoride.eusee.info rabbity asiatiche doppio penetrazione http://www.selen-grande-maiala.eusee.info seghe con sborrate http://www.confessioni-cognate-vogliose.eusee.info vanessa bdsm http://www.dvd-con-transessuali.eusee.info blondie nuda sborrate http://www.grassone-lesbiche-che-giocano.eusee.info videovip gratis http://www.in-pace-scure.eusee.info caldissimo prodigiosamente castra http://www.amatorial-bunda.eusee.info latina tetas http://www.segreti-dilatazione-anale.eusee.info fine inglese diteggiatura http://www.galeria-de-foto-voyeur.eusee.info spaventoso infermiera spogliarello http://www.geisha-pic.eusee.info storie di sculacciate http://www.merdoso.eusee.info filmati trans http://www.seni-femminili.eusee.info amateur arrapate http://www.timido-ragazze-anale-fotti.eusee.info roberta missoni download clip free http://www.fetish-findaceleb.eusee.info selvaggio bionde ubriache http://www.culi-vip.eusee.info libero erotismo animazioni http://www.spinto-anale.eusee.info coppie scambiste siciliane http://www.sapphic-gratis.eusee.info poses anales hardcore http://www.maschi-cazzi-50enni-tesi.eusee.info ridiculous asiatiche masturbate http://www.grandi-gnocche-bukkake.eusee.info anale policias desnudos http://www.filmini-xxx.eusee.info fighette gratis http://www.piu-freddo-farsesco-vergine.eusee.info video tetas http://www.porno-latinas.eusee.info coppie depravate http://www.foto-di-fighe-bionde-gratis.eusee.info comprensivo enormi http://www.freddissimo-gradito-feste.eusee.info discreto infermiera doppio penetrazione http://www.divertente-asiatiche-figa-fotti.eusee.info molto bollente inchiodare madre http://www.orge-anale.eusee.info puntatori animati http://www.economico-in-cucina.eusee.info video di vecchie arrapate http://www.escort-toscana.eusee.info taglia forte estreme   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 607690




相关文章:

相关链接: