求一条SQL语句。`````````急
一个新闻表 一个新闻图片表一个新闻有多张图片
现在我想在视图里查询TOP5的 新闻ID不重复的 5条记录, 而且还需要ORDER BY 排序,
说白了就是 想查最新发布的5条新闻 的5张图片 不管这条新闻有几张 只要一张。
请高手帮忙, 谢谢 --------------------编程问答-------------------- select distinct top 5 * from table --------------------编程问答-------------------- select distinct top 5 * from 新闻表 join 新闻图片表
on 新闻表.id=新闻图片表.id
order by 日期字段 desc --------------------编程问答--------------------
distinct 难道后面不跟参数吗, 居然好使,谢谢你 --------------------编程问答--------------------
这样查如果一张新闻有五张图片 会查出上什么?
想查最新发布的5条新闻 的5张图片 不管这条新闻有几张 只要一张。
还是一条新闻而已.. --------------------编程问答-------------------- 学习了 --------------------编程问答--------------------
up --------------------编程问答-------------------- 挺绕的。。。学习了!distinct 后面应该跟个字段吧,应该是新闻ID。去掉重复的新闻,因为是5个不同新闻的图片 --------------------编程问答-------------------- distinct是数据库语句关键字 --------------------编程问答--------------------
--------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 想查最新发布的5条新闻 的5张图片 不管这条新闻有几张 只要一张。
select top 5 p.* from 新闻表 p,新闻图片表 t
where p.ID = t.新闻表ID and not exists(select ID from 新闻图片表 where id > t.Id and t.新闻表ID = 新闻表ID)
order by p.Id
貌似很难哦。。。期待结果。 --------------------编程问答--------------------
1.--------------------编程问答-------------------- select distinct top 5 p.* from 新闻表 p,新闻图片表 t
select top m * from tablename where id not in (select top n id from tablename order by id asc/*|desc*/)
2.
select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入到临时表
set rowcount n --只取n条结果
select * from 表变量 order by columnname desc
3.
select top n * from
(select top m * from tablename order by columnname) a
order by columnname desc
4.如果tablename里没有其他identity列,那么:
先生成一个序列,存储在一临时表中.
select identity(int) id0,* into #temp from tablename
取n到m条的语句为:
select * from #temp where id0 > =n and id0 <= m
如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:
exec sp_dboption 你的DB名字,'select into/bulkcopy',true
5.如果表里有identity属性,那么简单:
select * from tablename where identity_col between n and m
6.SQL2005开始.可以使用row_number() over()生成行号
;with cte as
(
select id0=row_number() over(order by id),* from tablename
)
select * from cte where id0 between n to m
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ws_hgo/archive/2009/02/18/3906309.aspx
where p.ID = t.新闻表ID order by p.Id
--------------------编程问答--------------------
这样查如果一张新闻有五张图片 会查出上什么?
想查最新发布的5条新闻 的5张图片 不管这条新闻有几张 只要一张。
还是一条新闻而已..
--------------------编程问答-------------------- select distinct top 5 * from newss join (select distinct a.img,a.newsid,(select top 1 imgid from newsimage where img=a.img and newsid=a.newsid order by newid()) as imgid from newsimage a) e
on newss.newsid=e.newsid
order by uptime desc
其中 news为新闻表(newsid,uptime时间),newsimage为新闻对应的图片表(imgid,img图片,newsid对应的新闻编号)
刚试了下楼上的方法貌似不行吧!嘿嘿..... --------------------编程问答-------------------- 嘿嘿。。。我只试了‘select distinct top 5 * from 新闻表 join 新闻图片表
on 新闻表.id=新闻图片表.id
order by 日期字段 desc’这个
好像不行
这页面打开了蛮久,没刷新,不晓得有这么多人回复啦!
不好意思啦!刚那句‘刚试了下楼上的方法貌似不行吧’ --------------------编程问答--------------------
select top 5 *,(select top 1 图片url from 图片表 where 图片ID=新闻表.新闻表和图片表中的外键ID)as 图片url from 新闻表 order by 时间--------------------编程问答-------------------- 先根据新闻ID分组查找最大的时间,和图片ID,然后就可以根据查询出来的结果排序了。 --------------------编程问答-------------------- 没听明白啥意思,是新闻表里有个新闻图片字段,然后里面有好多图片id在这个字段里面就取一个图片id么 --------------------编程问答-------------------- 不会。。。
顶下! --------------------编程问答-------------------- . --------------------编程问答-------------------- select distinct top 5 * from 新闻表 join 新闻图片表
on 新闻表.id=新闻图片表.id
order by 日期字段 desc --------------------编程问答-------------------- select top 5 a.*,b.图片 from 新闻表 as a join (select * from 新闻图片表 group by 新闻ID) b
on a.新闻ID=b.新闻ID order by a.时间 desc --------------------编程问答-------------------- 您老又来了,。。还是想不出。、
你能在代码里面处理吗?? --------------------编程问答-------------------- 图片采用max 关联
select a.*,b.Pic from News a
left join (select News_ID ,max(Pic) as pic from News_Pic group by News_ID ) b on a.News_ID=b.News_ID
--------------------编程问答-------------------- select distinct top 5 * from 新闻表 join 新闻图片表
on 新闻表.id=新闻图片表.id
order by 日期字段 desc --------------------编程问答-------------------- select distinct top 5 * from 新闻表 join 新闻图片表
on 新闻表.id=新闻图片表.id
order by 日期字段 desc
补充:.NET技术 , ASP.NET