首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求一sql查询语句 [已结贴,结贴人:mengshan1986]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mengshan1986
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-21 12:01:54 楼主
    表字段fid aid content,aid为主键,我想取出fid=2,3,4的每一个fid的前10条记录使用union可以实现但是语句太长了,有没有更短的语句?
    (select * from copy_article where fid =2 order by hits desc limit 10) union (select * from copy_article where fid =3 order by hits desc limit 10) union (select * from copy_article where fid =3 order by hits desc limit 10) union (select * from copy_article where fid =3 order by hits desc limit 10) union (select * from copy_article where fid =3 order by hits desc limit 10) union (select * from copy_article where fid =3 order by hits desc limit 10)
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • arrow_gx
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 12:05:251楼 得分:10
    这是 musql 的写法吧 ??

    不过这个写法已经是很简洁了,没什么可以优化的了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hyqwan11112
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 12:15:032楼 得分:15
    已经很简单了哦,换成union all效率要好点吧!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mengshan1986
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 12:25:593楼 得分:0
    是mysql的写法,要是取出从2到10的fid数据sql语句不是太长了,有没有更短的sql语句
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • szx1999
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 13:05:164楼 得分:5
    给你一个SQL2005的参考:
    SQL code
    select fid,aid,[content] from (select *,rn=ROW_NUMBER() over(partition by fid order by hits desc) from copy_article where fid in (2,3,4)) t where rn between 1 and 10
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved