mdsk.net
当前位置:首页 >> mysql跨表查询、ORDER BY和GROUP BY、MAX相结合查... >>

mysql跨表查询、ORDER BY和GROUP BY、MAX相结合查...

我觉得你在数据库中应该增加一条表示时间的记录,通过时间去判断是不是最新的记录,通过主键当然也能判断,可是不够严谨.思路是你先通过group by sender_id,max找到每个组里最大的记录,然后再用源数据表的id和这个最大的id去比较,如果相同,则取出就行了.

order by 是对表字段的排序group by 是对表字段的分组怎么会一样呢?建议你应该好好学习mysql查询的基础才行.

group by是分组的,比如你要查询一个班级的学生,各省分别有多少人.(表结构是学生表,有学号,姓名,所在省,备注等.) 就应该用到group by了,如:SELECT 所在省,COUNT(*) AS 学生数 FROM 学生 GROUP BY 所在省 Order by是用来排序的.如,你想要把上例中查得的结果按人数从大到小,或从小到大排列,可以加这么一句,ORDER BY 学生人数 (DESC或ASC); 好了,就这么个用法.后面括号的关键字,指明了从大到小,还是从小到大,只能写一个,并且不要括号.

这么写:select uid,name,max(dateline) datelinefrom a,bwhere a.uid = b.uidgroup by uid,nameorder by max(dateline)

把desc去掉

Select * From (Select * From exampletable Order By important Desc) As tmp Group By type括号里的子查询是让结果按important倒序排列.外边的查询是值选出每个type的一条记录.

sql order by 和 group by 共同运用order by 的列,必须是出现在group by 子句里的列.如果声明了 group by 子句,输出就分成匹配一个或多个数值的不同组里. 如果出现了 having 子句,那么它消除那些不满足给出条件的组.order by 子句中的列

SELECT username, SUM(money) FROM 表名 GROUP BY 1 ORDER BY 2 DESC

推荐使用order by

使用SELECT句进行表查询 SELECT 字段名 FROM 表一表二 … WHERE 表一.字段 = 表二.字段 AND 其查询条件 SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo0陆5_tel AS b,tb_demo0陆5 AS a WHERE a.id=

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com