【发布时间】:2017-12-30 03:59:58
【问题描述】:
我有一个表,我需要检查或比较两行两列是否相等,然后我只需要检索数据
我的表结构是
id | route_id | stop_id | bus_id | bus_time | trip | direction
如果我执行以下查询
select routes.route_name,stops.stop_name,buses.bus_name,bus_timings.bus_time,bus_timings.trip,bus_timings.bus_direction from `bus_timings`
inner join `stop_orders` on `stop_orders`.`id` = `bus_timings`.`stop_order_id`
inner join `routes` on `stop_orders`.`route_id` = `routes`.`id`
inner join `stops` on `stop_orders`.`stop_id` = `stops`.`id`
inner join `buses` on `buses`.`id` = `bus_timings`.`bus_id`
where `stops`.`stop_name` in ("sydney","melborne")
输出
1 | route_1 | Sydney | bus_1 | 07:05 :00 | 1 |1
2 | route_1 | Melbourne| bus_2 | 07:35:00 |1 |1
但在现有查询中,即使巴士不在悉尼之间行驶,我也会得到墨尔本的结果 . 我只需要获取从悉尼到墨尔本或往返于悉尼和墨尔本之间的巴士名称
【问题讨论】:
-
如果可能的话,你能给我们看看样本数据吗?另外你怎么知道一辆特定的巴士从 A 到 B,因为你只存储我认为是起始位置的停靠点 ID。是这样吗?
-
@RohitS.i 已更新问题
-
感谢您更新问题,但架构仍不清楚我的意思是 stop_order 表示下一站是什么? stop_id 也是路由 id 吗? trip_direction 也是 route_id 吗?只是想帮忙.. :D
-
在我们添加站点时的停止顺序,我们不能说我们将添加到 db 以便识别假设一辆公共汽车将以 a 到 b 到 c 到 d 的方式行驶,所以继续。在 db 中,我们可能不会像 a ,b,c,d 一样按相同的顺序输入,以便按顺序识别路线停靠点,我添加了 stop_orders
-
公交车和路线有什么区别?
标签: php mysql laravel codeigniter