【发布时间】:2013-10-21 14:54:20
【问题描述】:
我想按日期在两个表之间加入。 第一个表有每天的日期 - 表 a。 第二个表有几个日期(不是每天的日期) - 表 b。 我希望能够以某种方式加入这两个表 a.date=(小于或等于a.date的最大日期)
有没有办法通过 MySQL 做到这一点?
【问题讨论】:
-
考虑将 DDLS 和/或 sqlfiddle 与所需结果一起发布
我想按日期在两个表之间加入。 第一个表有每天的日期 - 表 a。 第二个表有几个日期(不是每天的日期) - 表 b。 我希望能够以某种方式加入这两个表 a.date=(小于或等于a.date的最大日期)
有没有办法通过 MySQL 做到这一点?
【问题讨论】:
请参阅SQL Fiddle 了解可能的解决方案:
SELECT A.Date AS ADate, A.Value AS AValue,
(
SELECT B.Date
FROM B
WHERE B.Date <= A.Date
ORDER BY B.Date DESC
LIMIT 1
) AS BDate,
(
SELECT B.Value
FROM B
WHERE B.Date <= A.Date
ORDER BY B.Date DESC
LIMIT 1
) AS BValue
FROM A
WHERE A.Date = '2013-03-01'
在上面我只是使用子查询从表B 中提取字段。
【讨论】: