MYSQL分组查询

时间:2015-09-28 09:18:58

标签: mysql

我的MySQL数据库中有以下表格

busnames

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

有谁能告诉我如何根据旅行获取数据?

1 个答案:

答案 0 :(得分: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