首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL子查询多个条件

MySQL子查询多个条件
EN

Stack Overflow用户
提问于 2013-06-20 15:51:25
回答 1查看 77关注 0票数 0

我有一个表bus_stops,其中包含带有公共汽车站的公交车的路线id,如下所示:

代码语言:javascript
复制
 sl_no     route_id                    stop_name
-------------------------------------------------------------
  1          1234                       stop1
  2          1234                       stop2
  3          1235                       stop7
  4          1235                       stop8
  5          5678                       stop1
  6          5678                       stop2

我想要一个同时包含stop1和stop2的route_id (对于stop1 as From station和stop2 as to station,我希望得到1234,但不是"stop2 as From Staion“和"stop1 as To Station")。

我写了这个查询:

代码语言:javascript
复制
SELECT DISTINCT route_id FROM bus_stops AS myAlias
WHERE EXISTS ( SELECT * FROM bus_stops WHERE route_id = myAlias.route_id AND stops = 'stop1' )
  AND EXISTS ( SELECT * FROM bus_stops WHERE route_id = myAlias.route_id AND stops = 'stop2' )

但是它返回"stop1 as From station和stop2 as To station“和"stop2 as From Staion和stop1 as To Station”的route_id。

EN

回答 1

Stack Overflow用户

发布于 2013-06-20 16:19:56

使用JOIN来获取起始停靠点之后的路线(例如,终止停靠点的sl_no大于起始停靠点的sl_no):

代码语言:javascript
复制
SELECT a.route_id, a.stop_name, b.stop_name
FROM bus_stops a
INNER JOIN bus_stops b 
ON a.route_id = b.route_id
AND a.stop_name = 'stop1'
AND b.stop_name = 'stop2'
AND a.sl_no < b.sl_no
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17208099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档