PHP MYSQL基于两个匹配的行列检索数据

时间:2017-12-30 03:59:59

标签: php mysql laravel codeigniter

我有一个表,我需要检查或比较两行两列相等然后只需要检索数据

我的表结构是

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

但是在现有的查询中,即使公共汽车不在悉尼之间旅行,我也会得到墨尔本的结果 。 我只需要获得在悉尼到墨尔本之间的公共汽车名称

1 个答案:

答案 0 :(得分:1)

这样做的简单方法,没有太多的模糊,正如你提到的使用PHP, 所以在查询语句中只使用一个where子句,而不是使用php过滤数据, 例如 , 在您检索悉尼和墨尔本之间的公共汽车后,进行一个foreach循环并使用if条件和选定的时间。

另一种方式,如果你喜欢使用数组 使用任何数组搜索功能匹配每个记录中的时间,并将密钥输出到另一个数组。 结果数组将包含城市之间和选定时间之间的总线的过滤数据。