[英]How to select two different rows in same table having given values in a specific column
我正在嘗試從具有有關公交路線站點詳細信息的表中選擇行。
如果采用了一條巴士路線,則起始站和終止站之間的所有站都將插入此表中。
我想做的是。 向乘客顯示他/她想從當前地點去目的地時應該選擇的公交路線
為此,我正在了解他的出發點(最近的公交車站)和目的地
那么我需要獲取所有在公交路線之間具有兩個車站的公交路線號。
在某些時候,可能會有公交路線僅經過乘客想要去的一個車站。 防爆。 可能有一輛公共汽車只能通過乘客的當前位置或目的地
我不想向乘客展示的那些路線。
從下表中,如果我搜索開始位置=“ kotte交界處”和結束位置=“孟加拉交界處”,我只需要顯示168和163路線編號,因為170條路線未經過乘客目的地。
+--------------------------------------------------------------------------------------+
| ID|route_number|station_name|station_order|added_date|CURRENT_TIMESTAMP|last_updater |
+--------------------------------------------------------------------------------------+
| |1|168|Kotahena|1|2017-05-28|2017-05-28 08:13:13|100024 |
| |2|168|borella|2|2017-05-28|2017-05-28 08:13:13|100024 |
| |3|168|kota road|3|2017-05-28|2017-05-28 08:14:20|100024 |
| |4|168|Rajagiriya|4|2017-05-28|2017-05-28 08:14:20|100024 |
| |5|168|kotte junction|5|2017-05-28|2017-05-28 08:15:46|100024 |
| |6|168|mati ambalama|6|2017-05-28|2017-05-28 08:15:46|100024 |
| |7|168|kotubamma|7|2017-05-28|2017-05-28 08:16:35|100024 |
| |8|168|bangala junction|8|2017-05-28|2017-05-28 08:16:35|100024 |
| |9|163|dehiwala|1|2017-05-28|2017-05-28 08:50:09|100024 |
| |10|163|battaramulla|2|2017-05-28|2017-05-28 08:50:09|100024 |
| |11|163|kotte junction|2|2017-05-28|2017-05-28 08:50:56|100024 |
| |12|163|mati ambalama|3|2017-05-28|2017-05-28 08:50:56|100024 |
| |13|163|kotubamma|4|2017-05-28|2017-05-28 08:51:42|100024 |
| |14|163|bangala junction|5|2017-05-28|2017-05-28 08:51:42|100024 |
| |15|170|kotte junction|1|2017-05-28|2017-05-28 09:04:47|100024 |
| |16|170|mati ambalama|2|2017-05-28|2017-05-28 09:04:47|100024 |
+--------------------------------------------------------------------------------------+
我嘗試了流動查詢,但沒有得到我真正想要的。
SELECT * FROM `bus_route_stations` WHERE `station_name` = 'kotte junction' UNION ALL SELECT * FROM `bus_route_stations` WHERE `station_name` = 'bangala junction'
SELECT * FROM bus_route_stations A
INNER JOIN bus_route_stations B
ON B.station_name = A.station_name
WHERE A.station_name = 'kotte junction' AND B.station_name = 'bangala junction'
SELECT * FROM bus_route_stations A INNER JOIN bus_route_stations B ON B.station_name = A.station_name WHERE A.station_name IN('kotte junction' ,'bangala junction')
SELECT A.route_number
FROM bus_route_stations A
JOIN bus_route_stations B USING(route_number)
WHERE A.station_name = 'kotte junction'
AND B.station_name = 'bangala junction'
AND A.station_order < B.station_order
擁有此“復合”索引將是很好的:
INDEX(station_name, route_number, station_order) -- in this order
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.