首页 > 解决方案 > 如何在几天内加入两个 MySQL 表?

问题描述

情况如下:我正在尝试加入两个 MySQL 表,每个表都包含邮轮航行的事务日志。两个表都将包括以下字段:名字、姓氏、金额、交易日期、邮轮公司、船舶和航行日期。

我正在尝试确定每个表上的哪些事务可以肯定地与另一个事务匹配以用于簿记目的。到目前为止,这是一件相当简单的事情,在名字、姓氏、金额、邮轮、船舶、航行日期上使用 INNER JOIN ......但至于交易日期,我正在寻找一个范围,其中两个日期在一对夫妇之内彼此的日子。这是因为一个交易可能在另一个数据库之后一两天被人输入到一个数据库中。

我需要在 MySQL 中使用某种方法来匹配其中一个表上的事务日期发生在另一个表上 +/- 2 天的事务,并且仍然匹配我列出的所有其他字段。任何帮助将不胜感激!

标签: mysqljoin

解决方案


您可以在子句中使用DATEDIFF()以天为单位返回 2 个日期之差的函数:ON

ON ..... AND ABS(DATEDIFF(t1.SailingDate, t2.SailingDate)) <= 2

推荐阅读