【发布时间】:2019-11-20 10:30:34
【问题描述】:
考虑一个包含会议数据的表,每个会议都与一个主会议相关联。 示例:
meeting_id | master_meeting_id | start_at |
1sq | a | 2019-01-03 11:30:00 |
2cd | b | 2019-01-01 10:30:00 |
3as | a | 2019-02-03 11:30:00 |
4cd | d | 2019-02-03 12:30:00 |
dw5 | a | 2019-03-03 11:30:00 |
6ds | a | 2019-04-03 11:30:00 |
SQL 小提琴:http://sqlfiddle.com/#!9/79638a/1
给定 meeting_id,如何在 single SQL 查询中获取与同一 master_meeting_id 关联的最近(按 start_at)会议?
示例:
输入:
meeting_id=3as
N=1
输出:
meeting_id | master_meeting_id | start_at |
1sq | a | 2019-01-03 11:30:00 |
3as | a | 2019-02-03 11:30:00 |
dw5 | a | 2019-03-03 11:30:00 |
注意:我使用 MySQL
到目前为止我已经尝试过: 使用两个 SQL 查询,一个在 start_at 之后获取相关行,另一个在 start_at 之前使用 limit 获取行
编辑:编辑 start_at 的真实表值 编辑 2:添加了 SQL Fiddle
【问题讨论】:
-
<time>编辑问题并添加真实的DATETIME值,我们不是来填空的.. -
好的。这样做。
-
如果您想要在 和 之前最接近的 N,那么最简单的方法就是
UNION两个查询的结果。 -
我已经附上了 SQLFiddle 以防有人玩或尝试:)