Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
值之间的差异最小的mysql连接?_Mysql_Join_Left Join_Minimum - Fatal编程技术网

值之间的差异最小的mysql连接?

值之间的差异最小的mysql连接?,mysql,join,left-join,minimum,Mysql,Join,Left Join,Minimum,原则上,我有两个表T1和T2,每个表都包含一个日期字段,我们称之为日期: T1: date | somekey | data ... T2: date | somekey | data ... 我想(左)连接T1和T2,这样结果包含T1中的所有行 现在,对于T1中的每一行,我需要T2的(正好一行)连接的值,其中ABS(DATEDIFF(T1.date,T2.date))是最小值,并且T1.somekey=T2.somekey(如果T2中没有这样的行,则为null)不要在JOIN子句中执行

原则上,我有两个表T1和T2,每个表都包含一个日期字段,我们称之为日期:

T1: date | somekey  | data ... 
T2: date | somekey  | data ...
我想
(左)连接T1和T2
,这样结果包含T1中的所有行


现在,对于T1中的每一行,我需要T2的(正好一行)连接的值,其中
ABS(DATEDIFF(T1.date,T2.date))
是最小值,并且
T1.somekey=T2.somekey
(如果T2中没有这样的行,则为null)

不要在
JOIN
子句中执行此操作,只需将其放在
where
子句中即可

SELECT
*
FROM
T1
LEFT JOIN T2 ON T1.somekey = T2.somekey
WHERE
ABS(DATEDIFF(T1.date,T2.date)) = 1 /*or whatever "minimal" means for you*/
/*or like this:*/                < $yourMinimalValue

不要在
JOIN
子句中执行此操作,只需将其放在
WHERE
子句中即可

SELECT
*
FROM
T1
LEFT JOIN T2 ON T1.somekey = T2.somekey
WHERE
ABS(DATEDIFF(T1.date,T2.date)) = 1 /*or whatever "minimal" means for you*/
/*or like this:*/                < $yourMinimalValue

就我所知,DATEDIFF产生一个整数值,表示两个日期之间的天数差,这是什么意思。如果T2中有符合条件的行,则必须有一个差异最小的特定行。很抱歉,我无法更清楚地表达这一点。就我所知,DATEDIFF生成一个整数值表示两个日期之间的天数差,这是什么意思。如果T2中有符合条件的行,则必须有一个差异最小的特定行。抱歉,我无法更清楚地表达这一点。这就是问题所在:minimal不是一个常量。@IARI那么您想选择DATEDIFF最小的行吗?我还不完全清楚你想要完成什么。@akalucas我想这就是他想要的,是的。@tombom是的,这正是我想要的。此外,如果子查询不在from子句中,则它是ok。我想你可以从帖子中删除第一个建议,第二个是有趣的例子。这就是问题所在:minimal不是一个常量。@IARI那么你想选择DATEDIFF最小的行吗?我还不完全清楚你想要完成什么。@akalucas我想这就是他想要的,是的。@tombom是的,这正是我想要的。此外,如果子查询不在from子句中,则它是ok。我想你可以从帖子中删除第一条建议,第二条是有趣的案例。