MySQL在不相等的日期之间加入

时间:2013-10-21 14:54:21

标签: mysql sql join subquery

我希望按日期在两个表之间加入。 第一个表格包含每天的日期 - 表a。 第二个表的日期很少(不是每天的日期) - 表b。 我希望能够以这种方式加入这两个表 a.date =(小于或等于a.date的最大日期)

有没有办法通过MySQL做到这一点?

1 个答案:

答案 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中提取字段。