我有两个表都包含“ callid,callnumber,callduration”。现在我想获得一个具有相同callnumber的呼叫,而callduration大于给定值。
Select a.callnumber
, b.callnumber
from table a
INNER JOIN table b ON ( a.callnumber = b.callnumber
AND a.callduration-b.callduration > value );
但这会返回满足条件的多个结果,而我只希望通话时间差最小。
最佳答案
原始sql中的联接条件和口头解释不匹配,因此这是两个版本:持续时间高于给定值,而持续时间则相差大于给定值:
v1:
Select a.callnumber
, min (a.callduration-b.callduration) mindiff
from table a
INNER JOIN table b ON ( a.callnumber = b.callnumber
AND a.callduration > value
AND b.callduration > value )
group by a.callnumber
;
v2:
Select a.callnumber
, min (a.callduration-b.callduration) mindiff
from table a
INNER JOIN table b ON ( a.callnumber = b.callnumber
AND a.callduration-b.callduration > value )
group by a.callnumber
;
关于mysql - 如何使用联接根据表中的特定条件仅选择不同的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18654763/