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

发布于 2022-09-02 13:23:32 字数 435 浏览 18 评论 0

以下详情:
有两个表 :
表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。。。求大神给个方案。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月如刀 2022-09-09 13:23:32

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
一萌ing 2022-09-09 13:23:32

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文