一个联合查询并排序的问题
时间:2008-07-14
来源:互联网
请教一个联查并排序的问题,现在的问题是排序不对。
表A col1, col2, col3
表B col1, col4, col5
两个表通过col1联结,其中表B中col5是时间戳。表A是某人的个人信息,每条记录是唯一的,表B是某人的一些行动信息,每个时间会有不同的记录。现在我要查出按最后有活动的4个人。
SELECT a.col1, a.col2, a.col3
FROM a
INNER JOIN b ON a.col1 = b.col1
GROUP BY a.col1
ORDER BY b.col5 DESC
LIMIT 0 , 4但是这样查出来的顺序不对,因为这里查出来的时间不是最后的活动时间,而是最开始的时间。请教高人,怎么样能查出我想要的那种结果?
表A col1, col2, col3
表B col1, col4, col5
两个表通过col1联结,其中表B中col5是时间戳。表A是某人的个人信息,每条记录是唯一的,表B是某人的一些行动信息,每个时间会有不同的记录。现在我要查出按最后有活动的4个人。
引用:
SELECT a.col1, a.col2, a.col3
FROM a
INNER JOIN b ON a.col1 = b.col1
GROUP BY a.col1
ORDER BY b.col5 DESC
LIMIT 0 , 4
作者: anyforever 发布时间: 2008-07-13
好几天了,没人帮解答啊?

作者: anyforever 发布时间: 2008-07-15
复制PHP内容到剪贴板
FROM a
INNER JOIN b ON a.col1 = b.col1
GROUP BY a.col1, a.col2, a.col3
ORDER BY MAX(b.col5) DESC
LIMIT 4
PHP代码:
SELECT a.col1, a.col2, a.col3,max(b.col5)FROM a
INNER JOIN b ON a.col1 = b.col1
GROUP BY a.col1, a.col2, a.col3
ORDER BY MAX(b.col5) DESC
LIMIT 4
作者: coolstr 发布时间: 2008-07-15
谢谢版主啊,结果还是不对。奇怪了。那时间还不是最后一个。
作者: anyforever 发布时间: 2008-07-16
select * from a,(select col1,max(col5) as maxtime from b group by col1)test where test.col1 = a.col1 order by maxtime desc limit 4;
select a.col1,max(col5) as maxtime from a,b where a.col1 = b.col1 group by a.col1 order by maxtime desc limit 4;
[ 本帖最后由 devotedsky 于 2008-7-16 16:02 编辑 ]
select a.col1,max(col5) as maxtime from a,b where a.col1 = b.col1 group by a.col1 order by maxtime desc limit 4;
[ 本帖最后由 devotedsky 于 2008-7-16 16:02 编辑 ]
作者: devotedsky 发布时间: 2008-07-16
第一条正确,第二条不对。谢谢楼上的啊。呵呵。
作者: anyforever 发布时间: 2008-07-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28