gpt4 book ai didi

mysql - 从表中选择行,其中两列形成一个不同的集合并按第三个字段排序

转载 作者:行者123 更新时间:2023-11-30 22:55:12 25 4
gpt4 key购买 nike

我有一个名为 route_timetables 的表,其中包含巴士路线的时间表。

每一行包含一个针对一个方向(即北、南、东和西)和一种日期类型(即工作日、周六和周日)的时间表。

我需要获取每条路线的最新时间表。因此,在路线 id=X 和路线 publish_date 已经过去的地方,我需要获取方向和类型不同的最新时间表。它可能会返回 6 行,一行表示工作日、星期六和星期日的西部,另一行表示工作日、星期六和星期日的东部。
表格字段看起来像这样

id   route_id    timetable    publish_date    direction    type

我尝试了几种不同的方法。我认为这段代码是有效的,但它正在查询一个旧的时间表,该时间表也适用于工作日,向西行驶。

SELECT timetable, direction, type, MAX(publish_date)
FROM route_timetables
WHERE publish_date<=curDate() and route_id=2
GROUP BY direction, type

最佳答案

加入发布日期信息:

SELECT rt.*
FROM route_timetables rt JOIN
(SELECT direction, type, route_id, MAX(publish_date) as maxpd
FROM route_timetables
WHERE publish_date <= curDate() and route_id = 2
GROUP BY direction, type, route_id
) dtr
ON dtr.route_id = rt.route_id and dtr.type = dt.type and dtr.direction = dtr.direction and
dtr.maxpd = tr.publish_date ;

这是正确的想法。没有示例数据,很难判断聚合和 on 子句是否使用了正确的字段。

关于mysql - 从表中选择行,其中两列形成一个不同的集合并按第三个字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com