我有一个表,我需要检查或比较两行两列相等然后只需要检索数据
我的表结构是
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
但是在现有的查询中,即使公共汽车不在悉尼之间旅行,我也会得到墨尔本的结果 。 我只需要获得在悉尼到墨尔本之间的公共汽车名称
答案 0 :(得分:1)
这样做的简单方法,没有太多的模糊,正如你提到的使用PHP, 所以在查询语句中只使用一个where子句,而不是使用php过滤数据, 例如 , 在您检索悉尼和墨尔本之间的公共汽车后,进行一个foreach循环并使用if条件和选定的时间。
另一种方式,如果你喜欢使用数组 使用任何数组搜索功能匹配每个记录中的时间,并将密钥输出到另一个数组。 结果数组将包含城市之间和选定时间之间的总线的过滤数据。