MySQL:在最近的日期加入
我有一个包含日期和值的表:MySQL:在最近的日期加入,mysql,join,Mysql,Join,我有一个包含日期和值的表: table_1 ------- dt x 2018-01-01 1 2018-01-06 4 2018-01-07 2 2018-01-12 3 我还有另一张包含日期的表格: table_2 ------- dt 2018-01-01 2018-01-03 2018-01-04 2018-01-06 2018-01-08 2018-01-09 2018-01-11 我想创建一个新表my_joined_表 包含表2和表2中的所有日
table_1
-------
dt x
2018-01-01 1
2018-01-06 4
2018-01-07 2
2018-01-12 3
我还有另一张包含日期的表格:
table_2
-------
dt
2018-01-01
2018-01-03
2018-01-04
2018-01-06
2018-01-08
2018-01-09
2018-01-11
我想创建一个新表my_joined_表
包含表2和表2中的所有日期
对于每个日期,包含表_1.x的最新值,该值不比给定行中的日期新
因此,结果应该是:
my_joined_table
---------------
dt x
2018-01-01 1
2018-01-03 1
2018-01-04 1
2018-01-06 4
2018-01-08 2
2018-01-09 2
2018-01-11 2
这可能是一个标准问题,但我似乎无法解决它。非常感谢您的帮助。此查询将为您提供所需的结果。它将表_2连接到表_1上的表_1,表_1的最大dt小于或等于表_2 dt值: 要创建my_joined_表,只需使用查询:
SELECT t2.dt, t1.x
FROM table_2 t2
JOIN table_1 t1 ON t1.dt = (SELECT MAX(dt) FROM table_1 WHERE table_1.dt <= t2.dt)
dt x
2018-01-01 1
2018-01-03 1
2018-01-04 1
2018-01-06 4
2018-01-08 2
2018-01-09 2
2018-01-11 2
CREATE TABLE my_joined_table AS
SELECT t2.dt, t1.x
FROM table_2 t2
JOIN table_1 t1 ON t1.dt = (SELECT MAX(dt) FROM table_1 WHERE table_1.dt <= t2.dt)