【问题标题】:MySQL join between dates that are not equal不相等的日期之间的 MySQL 连接
【发布时间】:2013-10-21 14:54:20
【问题描述】:

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

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

【问题讨论】:

  • 考虑将 DDLS 和/或 sqlfiddle 与所需结果一起发布

标签: mysql sql join subquery


【解决方案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 中提取字段。

【讨论】:

  • 但如果 a.date >b.date ,“on”将不相等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多