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

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。。。求大神给个方案。


先排序s表,然后聚合group by tid,再join。。逻辑上是这样,可以适度优化



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
【热门文章】
【热门文章】