我希望按日期在两个表之间加入。 第一个表格包含每天的日期 - 表a。 第二个表的日期很少(不是每天的日期) - 表b。 我希望能够以这种方式加入这两个表 a.date =(小于或等于a.date的最大日期)
有没有办法通过MySQL做到这一点?
答案 0 :(得分:1)
有关可能的解决方案,请参阅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
中提取字段。