MYSQL - 如何在同一个表上的两个不同行上减去两列?

雅各布·戴维斯

我有一个选择 taht 带来这样的结果:

+-----------+------------+--------------+
| parking_id| start_time |   end_time   |
+-----------+------------+--------------+
|        38 | 09:15:00   | 10:32:00     |
|        57 | 11:45:00   | 13:21:00     |
|        33 | 14:40:00   | 16:35:00     |
|        15 | 17:13:00   | 19:15:00     |
|        68 | 20:54:00   | NULL         |
+-----------+------------+--------------+

正如您所看到的,ID 不遵循线性顺序,但是我真正需要的是一个选择,它为我带来最后一次插入的新start_timeend_time之间的时间,遵循这个非线性顺序,所以我需要一个选择我这个:

+-----------+------------+--------------+----------------+
| parking_id| start_time |   end_time   | time_btw_parks |
+-----------+------------+--------------+----------------+
|        38 | 09:15:00   | 10:32:00     |     NULL       |
|        57 | 11:45:00   | 13:21:00     |   01:13:00     |
|        33 | 14:40:00   | 16:35:00     |   01:19:00     |
|        15 | 17:13:00   | 19:15:00     |   00:38:00     |
|        68 | 20:54:00   | NULL         |   01:39:00     |
+-----------+------------+--------------+----------------+

不一定非要选择查询。任何解决它的方法都会有所帮助。

福帕斯

对于此示例数据,您可以使用timediff()函数:

select t.parking_id, t.start_time, t.end_time,
  timediff(t.start_time, max(tt.end_time)) time_btw_parks
from tablename t left join tablename tt
on t.start_time > tt.end_time 
group by t.parking_id, t.start_time, t.end_time
order by t.start_time

请参阅演示
结果:

| parking_id | start_time | end_time | time_btw_parks |
| ---------- | ---------- | -------- | -------------- |
| 38         | 09:15:00   | 10:32:00 |                |
| 57         | 11:45:00   | 13:21:00 | 01:13:00       |
| 33         | 14:40:00   | 16:35:00 | 01:19:00       |
| 15         | 17:13:00   | 19:15:00 | 00:38:00       |
| 68         | 20:54:00   |          | 01:39:00       |

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在mysql中访问与另一个表的两个不同列相对应的表的一个列?

如何在MySQL中相同列不同行中找到两个值之间的差异

PHPMYADMIN | 我们如何在两个不同的MySQL数据库(在同一服务器内)中同步两个表?

MYSQL:同一张表上的两个联接成为双重分组计数。如何解决?

如何在同一个表上合并两个查询以在MySQL中获得单个结果集

MySQL的两个外键来自同一个表

如何在MySQL的同一张表上使用join合并这两个查询?

如何在MySQL的一个表中显示2个不同的数据(两个条件)

从MySQL中的两个不同表中减去值

用两个不同条件的mysql在同一列上求和

两个事务无法在同一表MySql上获得IX锁

MySQL的:使用两个外键到同一个表

MySQL在同一个表中加入两个查询

在mysql中联接两个表时在一个表上使用限制

如何在同一表格的两个不同列中查找和显示相似单词的数量(MySql,PHP)

在两个表上的MySQL查询

MySQL在一个表上合并两个带有CASE的SELECT查询

如何在MySQL中比较表的两个不同行

MySQL:以一定顺序连接两个表的不同行?

mysql合并同一表上的两个查询

在两个表上获取不同的列名MySQL

如何在单个图形上从两个不同的MySQL表生成结果

如何在mysql的同一张表的不同列中添加两个或多个时间数据类型

获取同一列多行的总值和两个不同行的总和(mysql查询)

MySql 慢查询,在两个表上都有一个连接和条件

mysql 查询引用同一个表的两个外键

如何在 MySQL 中获取同一列的两个不同值

如何使用 MySql 使用另一个表中的值更新两个表上的值

mysql导致同一个表中的两列没有重复的行