mysql语句连接查询时多对一,选取特定条数的问题.

查看:93
本文介绍了mysql语句连接查询时多对一,选取特定条数的问题.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

以下详情:
有两个表 :
表T为基本信息,ID NAME 等字段;
表S有 ID TID TIME等字段;
两表关系是 S表依T表而存
S内的TID字段为表T的ID,S内的每一个字段必定对应T表内的一个字段,而T表却可能对应一条或多条S表字段,但也可能没有S表字段与之对应。
现在的sql语句为

SELECT t.id,t.name,s.id,s.time FROM t left join s on t.id=s.tid group by t.id order by t.id;

有需求,联表查询两个表,T left join S group by T.ID 要求结果中如果有s.time字段,要最大的那一个。
而现在只能查出来第一个TIME字段。
难于T字段不一定有S表字段,所以没法用order by s.time。。。求大神给个方案。

解决方案


select
t.id as tid, t.name , s.id as sid, s.time as stime
from t 
left join (
select tid, max(time) as time from s group by tid
) as s on t.id=s.tid

这篇关于mysql语句连接查询时多对一,选取特定条数的问题.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆