SQL 语句如何在两张表中分组查询只取一条记录?
表A:姓名字段(name),内容:张三,李四,王二麻子表B:签到时间字段(Name,LogTime)张三,7:59张三,8:01张三,6:30李四,6:01李四,7:20...
表A:姓名
字段(name),内容:张三,李四,王二麻子
表B:签到时间
字段(Name,LogTime)
张三,7:59
张三,8:01
张三,6:30
李四,6:01
李四,7:20
我想根据表1的Name字段,分组查询表2的记录,每个人只取最早一次签到时间,该怎么写SQL语句呢?
展开
字段(name),内容:张三,李四,王二麻子
表B:签到时间
字段(Name,LogTime)
张三,7:59
张三,8:01
张三,6:30
李四,6:01
李四,7:20
我想根据表1的Name字段,分组查询表2的记录,每个人只取最早一次签到时间,该怎么写SQL语句呢?
展开
3个回答
2015-12-27 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
sql语句中,关联查询只取分组的一条记录的方法如下:
select userid,ranking,username from table //查询字段有userid username
where userid+ranking in //where 条件包括userid+ranking in是集合选择关键字
(
select userid+max(ranking) from table // max(ranking)选择ranking列的最大值
group by userid //根据userid分组
)
以上sql中,内层select查出了最大的ranking,根据userid分组,外层查询中选择userid+ranking。
select userid,ranking,username from table //查询字段有userid username
where userid+ranking in //where 条件包括userid+ranking in是集合选择关键字
(
select userid+max(ranking) from table // max(ranking)选择ranking列的最大值
group by userid //根据userid分组
)
以上sql中,内层select查出了最大的ranking,根据userid分组,外层查询中选择userid+ranking。
展开全部
select name,min(logtime) from 表B
where name in(select * from 表A)
group by 表B.name
测试一下行不行
where name in(select * from 表A)
group by 表B.name
测试一下行不行
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select name,min(log_time) as logtime from 表B where name in (select name from 表A) group by name
这个样子?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询