我有一个表,其中包含如下所示的数据(简化)
+-----------+----------------------------+----------------------------+--------------+----------------+
| voyage_id | voyage_start_at | voyage_end_at | dest_city_id | depart_city_id |
+-----------+----------------------------+----------------------------+--------------+----------------+
| 3 | 2020-01-06 09:00:00.000000 | 2020-01-07 09:00:00.000000 | 21761 | 1778 |
| 2 | 2020-01-05 09:00:00.000000 | 2020-01-06 09:00:00.000000 | 1778 | 1680 |
| 2 | 2020-01-04 09:00:00.000000 | 2020-01-05 09:00:00.000000 | 1778 | 1680 |
| 2 | 2020-01-03 09:00:00.000000 | 2020-01-04 09:00:00.000000 | 1778 | 1680 |
| 2 | 2020-01-02 09:00:00.000000 | 2020-01-03 09:00:00.000000 | 1778 | 1680 |
| 1 | 2020-01-01 09:00:00.000000 | 2020-01-02 09:00:00.000000 | 1680 | 1677 |
| 1 | 2020-01-01 00:00:00.000000 | 2020-01-01 09:00:00.000000 | 1680 | 1677 |
+-----------+----------------------------+----------------------------+--------------+----------------+
重要的是:
voyage_start_at
]日期与上一次航行的voyage_end_at
日期相同>voyage_id
对于目的地和出发城市相同的每一行都是相同的(航程可以分为几行我想从一个城市到另一个城市的航行清单,从航行的第一个条目开始的日期为voyage_start_at,从航行的最后一个条目开始的日期为voyage_end_at,所以此示例应如下所示:
+-----------+----------------------------+----------------------------+--------------+----------------+ | voyage_id | voyage_start_at | voyage_end_at | dest_city_id | depart_city_id | +-----------+----------------------------+----------------------------+--------------+----------------+ | 3 | 2020-01-06 09:00:00.000000 | 2020-01-07 09:00:00.000000 | 21761 | 1778 | | 2 | 2020-01-02 09:00:00.000000 | 2020-01-06 09:00:00.000000 | 1778 | 1680 | | 1 | 2020-01-01 00:00:00.000000 | 2020-01-02 09:00:00.000000 | 1680 | 1677 | +-----------+----------------------------+----------------------------+--------------+----------------+
我相信这可以通过MySQL查询获得,所以我试图通过使用
DISTINCT
,JOIN
和子查询来获得它,但我根本没有得到它。现在我只是想知道这是可以通过SQL完成的,还是应该从db中获取RAW数据并将其转换为我的需要(我正在使用PHP和TWIG)。
任何有用的提示和想法都将受到赞赏。
我有一个表,其中包含如下所示(简化)的数据+ ----------- + ----------------------- ----- + ---------------------------- + -------------- + ---------------- + | voyage_id | voyage_start_at ...
您可以在这里使用聚合: