PHP SQL 找出轮值访问之间的差距

标签 php mysql sql resultset

我在编写这段代码时遇到了一个小问题。我有一个返回类次日期列表的 MySQL 查询。返回的数据如下所示:

id |    date    |  stime   |  etime   | staff | client
------------------------------------------------------
1  | 2014-01-01 | 08:00:00 | 08:30:00 | Dave  | Mary
2  | 2014-01-01 | 08:35:00 | 09:05:00 | Dave  | Clive
3  | 2014-01-01 | 09:17:00 | 09:32:00 | Dave  | Joan
4  | 2014-01-01 | 09:38:00 | 10:08:00 | Dave  | Doris

我需要算出通话之间的间隔。 IE。第 1 行的 etime 和第 2 行的 stime 之间的差距。答案应该是 5。 我可以使用 PHP 轻松计算出差异,但无法计算出如何获得: 第 1 行的 etime,第 2 行的 stime,然后是第 2 行的 etime 和第 行的 stime 3 etc......等等......我猜是某种交替函数,但不知道。

我确实需要指出 id 不会不连续。

我是这个网站的新手,环顾四周,看看是否有人问过这个问题。如果有,我深表歉意。 感谢任何可以提供帮助的人。

编辑:@sean 已经为我回答了这个问题,除了 id 结果必须是连续的。我需要了解如何使用非连续 id

执行 LEFT JOIN

最佳答案

使用 LEFT JOIN 连接下一行 stime。确保重命名 t2.stime,这样它就不会产生歧义。

SELECT t1.*, 
       t2.stime as `nxt_row_stime` 
FROM table t1 
LEFT JOIN table t2 
ON t2.id = t1.id+1

注意:这要求 id 增量没有间隙。

关于PHP SQL 找出轮值访问之间的差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795639/

相关文章:

php - 如何将数据库单元格数据插入javascript警报

php - MySQL:如果第 2 列中不存在值,如何更新第 1 列

java - MySQL 连接未关闭

php - 如何在 PHP 中的关联数组中的特定关联键之后添加新的 [key] => [value] 对?

javascript - 如何验证复选框列表中仅选择了一个复选框

php - PHP/MySQL 消息系统

c# - LINQ 到 SQL : InsertOnSubmit() vs Add()

php - 上传到域后,MySql 无法识别某些表列

mysql select for simple join for rows having certain cells with duplicate values

php - 如何修复此错误 "mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in"?