php - 如何从此表中选择日期 "span"?

标签 php mysql

我有一个 SELECT 结果,其中包含带日期的列。这是结果中的一些数据:

ID   Name    status         start_date      end_date
A1   John    Planning       2017-03-03      2017-03-05
A1   John    Realizing      2017-03-05      2017-04-05
A1   John    Finishing      2017-04-05      2017-04-15
A1   John    Launching      2017-04-15      2017-04-16
A2   Lisa    Planning       2017-03-09      2017-03-13
A2   Lisa    Realizing      2017-03-13         NULL

我想了解每个ID规划 -> 实现 -> 完成 -> 启动的进度状态。

我已经使用了这个查询,但我不知道它是否足够可靠和足够快。真实的表包含数千个值。

SELECT x.id, x.name, CONCAT_WS(' to ', MIN(x.start_date), MAX(x.end_date)) AS 进度 FROM (SELECT * FROM team_project WHERE ID = 'A1') x

预期输出:

Name             Progress               total
John     2017-03-03 to 2017-04-16      44 days
Lisa     2017-03-09 to NOW               -

最佳答案

我认为使用group by你会喜欢这个

SELECT id, name, CONCAT_WS(' to ', MIN(start_date), MAX(end_date)) AS progress 
FROM team_project group by ID 

关于php - 如何从此表中选择日期 "span"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43446845/

相关文章:

PHP 不再被解析?

php - 带有 Bootstrap 的 CakePHP(来自 Twitter)

mysql - 更新 MySQL 表不适用于 jquery

PHP/MySQL 获取表中每隔一行的问题/停止添加记录两次

php - 从 PHP 中的其他成员函数调用成员函数?

php - MySQL 性能命中同时访问表

mysql - 多个 LEFT JOIN - 输出错误

mysql - 如何限制UNION ALL查询的结果?

范围值之间的MySql查询(单条记录)

php - Perl 相当于 PHP mysqli_data_seek