如何关联数据但前提是在特定日期之前?

How to relate a data but only if before a specific date?

基本上 table1 看起来像这样

DATE       ID        PCS
1/2/2019   DIE6660   8
1/2/2019   DIE9240   9
2/2/2019   DIE9240   7
2/2/2019   DIT8990   1
2/2/2019   DIT6690   5
3/2/2019   DIE6770   2
4/2/2019   DIE9240   6

表 2 看起来像这样

DATE      ID       CON
1/2/2019  DIE9240  B
2/2/2019  DIE9240  B
2/2/2019  DIT6690  B
3/2/2019  DIE6770  N
4/2/2019  DIE9240  N

所以我想关联这些表,但关系必须是表 2 ID 必须与表 1 ID 中它之前的最后一个日期关联

所以基本上表 2 中“4/2/2019”中的 "DIE9240" 必须与表 1 中“2/2/2019”中的 "DIE9240" 相关。它不能与“4/2/2019”相关,因为它是同一日期(不早于它),也不能与“1/2/2019”相关,因为它不是它之前的最后一个日期。

有办法吗? 非常感谢

您可以像这样加入表格:

select *
from table1 t1 inner join table2 t2
on 
  t2.id = t1.id 
  and
  t1.date = (select max(date) from table1 where id = t2.id and date < t2.date)

您可以将 * 替换为您想要 select 的列名。
您已经用 MySql 和 SQLite 标记了您的问题,如果您使用的是 SQLite,那么样本数据中的日期格式不可比,也不会产生正确的结果,因为 SQLite 日期是被视为字符串。
您应该将格式更改为 YYYY-MM-DD
demo.