SQL分页,如果带有left join ,分页的时候加上排序就会出现错误列表,在线急等!!!!

我在查询数据的时候带有leftjoin,在分页的时候是一页显示4个,如果这个语句里面有排序的话就会数据查询顺序错乱,比如说,我现在是把分页中的notin中的查询数据摘出来... 我在查询数据的时候带有left join ,在分页的时候是一页显示4个,如果这个语句里面有排序的话就会数据查询顺序错乱,比如说,我现在是把分页中的not in 中的查询数据摘出来了,也就是排除的部分。如果带有排序的话,top 4,top 8, top 12中的数据按说top 8中的前4个跟top 4中的顺序是一样的,top 12 的前8个数据跟top 8中的是一样的 且顺序都是一样的,但是查询出来的结果竟然都不一样, 所有的查询条件都是一样的,排序也是一样的,这让我很纠结。
1. select top 4 per_registe.id from per_registe
left join per_persons on per_registe.bh=per_persons.bh
left join per_perinfo on per_registe.bh=per_perinfo.bh
left join cm_common_roles on per_registe.role=cm_common_roles.bh
left join interest_pers on per_registe.bh=interest_pers.ibh and interest_pers.ubh='f601122f-37fa-4773-9757-8052e04e1ec8'
order by per_registe.state desc, per_persons.fanscount desc, per_persons.score desc, per_persons.exp desc

2. select top 4 * from per_registe
left join per_persons on per_registe.bh=per_persons.bh
left join per_perinfo on per_registe.bh=per_perinfo.bh
left join cm_common_roles on per_registe.role=cm_common_roles.bh
left join interest_pers on per_registe.bh=interest_pers.ibh and interest_pers.ubh='f601122f-37fa-4773-9757-8052e04e1ec8'
order by per_registe.state desc, per_persons.fanscount desc, per_persons.score desc, per_persons.exp desc
展开
 我来答
szm341
2012-08-21 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5162万
展开全部
你top排序用的id一类的标识列吗,只有有序递增的标识列才能用top来分页
否则顺序将紊乱,想GUID这种列不可作为排序列
更多追问追答
追问
不好意思  没说明白  我这个是查询后的效果 并不是排序的列,我把递增标识列换成排序列也不行啊。  只能是在 排序列为from主表中的列才能不错,如果是按其他链接表中的列排序就会出错。
追答
额。。这个当然了,主表id排序在从表中顺序就不一定了啊
不然你就双排序试试,order by a.id,b.id这样
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式