MYSQL 分组查询

标签 mysql

我的 MySQL 数据库中有下表

总线名称

id |busname

路线

id|route_name

时序表

id | bus_id | route_id | trip |direction |bus_time
  • 一辆巴士每天包含多次行程
  • 每次行程包含 2 个方向 (0|1)
  • 0 表示源到目的地

  • 1 表示目的地到源

现在我想按行程显示数据组,其中bus_id =“some_id”以及每个行程数据的每个页面。如果我点击下一步,那么我需要显示第二次行程数据

BusRouteName |Trip | Departure | Destination|

Newyork        1         8 a.m       10.am
Ausi           1         9 a.m       11.20 a.m

在上面的数据巴士中,第一趟早上 8 点从纽约出发,上午 10 点返回

我在MySQL中尝试了很多查询,但它似乎没有产生正确的输出

SELECT * FROM timings t inner join routes r on t.route_id=r.id inner join busnames b on t.bus_id=b.id where b.id=1

谁能告诉我如何获取基于行程的数据?

最佳答案

也许尝试按 BusRoute 和 Trip 进行分组,并使用 Bus_time 的最小值和最大值来获取出发和目的地时间。

类似这样的东西(未经测试):

SELECT r.route_name, t.trip, min(t.bus_time) as Departure, max(t.bus_time) as Destination FROM timings t 
inner join routes r on t.route_id=r.id 
inner join busnames b on t.bus_id=b.id 
where b.id=1
group by r.route_name, t.trip

如果您有更复杂的条件,您可以按功能查看分区。请参阅https://dev.mysql.com/doc/refman/5.6/en/partitioning-selection.html

关于MYSQL 分组查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819481/

相关文章:

mysql,获取 super 管理员密码和用户名

php - 在特定日期之间更新 mysql 行

mysql - 手动更新Flyway中的schema_version表

mysql - 如何在“where”子句中使用用户定义的参数优化查询?

mysql - Doctrine Deployment don t fin pdo_mysql, on Synology with console-access

Mysql select union错误

php - session 未保存为 id

mysql - SQL 选择 -> 产品 -> 评论 -> 用户

mysql - Node.js MySQL 查询错误

mysql - 搜索非常大的彩虹表文件