为每个MySQL行执行TIMESTAMPDIFF

时间:2014-10-03 08:44:22

标签: php mysql select

我对MySQL查询有点问题,这是我的MySQL数据库结构:

表用户

hid(PK)

表格请求

id (PK), hid, word, time

表单击

id, rid (FK),time

我应该获得请求与其相关点击之间的平均时间...我已经尝试了这个,但我不确定它是否正常工作:

SELECT TIMESTAMPDIFF(SECOND,r.time,c.time) 
FROM requests r RIGHT JOIN clicks c ON r.id=c.rid 
WHERE r.hid='$hid'

有人可以告诉我,如果我做得对,并解释我为什么不这样做?我将一些数字作为查询结果,但它们似乎并不正确

1 个答案:

答案 0 :(得分:0)

如果您想获得平均时间,则忘记在查询中使用它(除了忘记“平均”结果外,它看起来还不错)。

试试这个:

SELECT AVG(TIMESTAMPDIFF(SECOND,r.time,c.time)) as avg_secs_diff
FROM requests r RIGHT JOIN clicks c ON r.id=c.rid 
WHERE r.hid='$hid'
GROUP BY r.hid