簡體   English   中英

如何選擇同一表中具有特定列中給定值的兩個不同行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM