多条数据查询时取MAX值并且获取对应的其它字段的值(初级版)
2011-08-04 16:58
239 查看
今天遇到了一个查询学历表的问题,就是一个个人用户可能存在很多条学历经历,那么在前台展现的时候,我们应该展现的是最大的值并且获取最大学历对应的毕业学校与专业。
百度了一下,发现一个办法很不错,特意共享一下
可以解释一下
括号里面的是查询到每条记录的最大值,如果单纯的这样查询,我们获取到最高学历对应的学校、专业是不准确的。
括号里面的WHERE的作用是很简单的,确保不会比较整个数据库,只是去比较同一个用户的
这样的话,前面的SELECT就很简单了,就是找出满足大于等于最大学历的那条数据
这样,通过类似子查询的查询方法,就满足了查询并列表最大学历用户信息
百度了一下,发现一个办法很不错,特意共享一下
SELECT * FROM tableA a WHERE a.mark >= (SELECT MAX(b.mark) FROM tableA b WHERE b.username=a.username )
可以解释一下
括号里面的是查询到每条记录的最大值,如果单纯的这样查询,我们获取到最高学历对应的学校、专业是不准确的。
括号里面的WHERE的作用是很简单的,确保不会比较整个数据库,只是去比较同一个用户的
这样的话,前面的SELECT就很简单了,就是找出满足大于等于最大学历的那条数据
这样,通过类似子查询的查询方法,就满足了查询并列表最大学历用户信息
相关文章推荐
- mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据
- 存储过程查询一张表中记录是否连续、重复并且取出对应的数据
- oracle或mysql分组查询并且获取前3条排序后的数据
- MySQL 一表中字段内容是用逗号分隔的 另一表含有对应数据的两表联合查询
- 在Mybaties中进行数据查询时,表中字段名和属相名没有对应起来,查询的结果总null,一下是解决方法
- MySql同时查询三个不关联的表,同时获取到三个表的数据,并按照某一字段排序
- Oracle中使用游标获取指定数据表的所有字段名对应的字符串
- 存储过程查询一张表中记录是否连续、重复并且取出对应的数据
- AutoCAD.Net/C#.Net QQ群:193522571 LinQ获取当前查询结果的字段名,并且遍历各字段值
- mysql查询语句中对字段内容补位(补零为例)length()函数获取某个字段数据长度
- 商城项目练习的注意点(数据的获取,hql查询 ,离线查询,分类判断,下拉列表框选中,隐藏字段传递数据等)
- 查询数据库中的表,返回字段相对应的数据类型!
- Oracle中使用游标获取指定数据表的所有字段名对应的字符串
- SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果
- MySQL-查询MySQL最后几条数据-不依赖其它字段
- 查询特定的某些数据,并且按照某个字段进行排序
- SQL Server 查询表的字段对应描述、数据类型、长度
- SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果( exec sp_executesql )
- MySQL-查询MySQL最后几条数据-不依赖其它字段
- EF调用存储过程查询表中的部分字段,报数据读取器与指定的“AdventureWorksDWModel.Student”不兼容。某个类型为“Age”的成员在同名的数据读取器中没有对应的列。