【问题标题】:Join two mysql queries加入两个mysql查询
【发布时间】:2013-05-18 12:47:01
【问题描述】:

我有 3 张桌子:

表1

RouteID             int
departure_stop      int 
destination_stop    int 
Price               decimal(6,2) 

表2

StopID          int
Stop            varchar(50)
Cities_CityID   int

表3

CityID      int
City        varchar(50)     

我想获得所有价格低于 50 的路线。 我想要这样的出发城市和目的地城市

City    City
Paris   London
Madrid  Zagred

到目前为止,我有两个查询我得到出发城市,然后第二个查询目的地城市,但不知道如何将它们并排加入。以下是我的疑问:

SELECT
    Cities.City
FROM Routes, Stops, Cities
WHERE (Stops.StopID = Routes.departure_stop AND Stops.Cities_CityID = Cities.CityID AND Routes.price < '50') 

和

SELECT
    Cities.City
FROM Routes, Stops, Cities
WHERE (Stops.StopID = Routes.destination_stop AND Stops.Cities_CityID = Cities.CityID AND Routes.price < '50')

所以问题是如何将它们并排连接在一起,以便我可以看到出发地和目的地?

【问题讨论】:

    标签: mysql sql join


    【解决方案1】:
    Select
        DepartureCity.City AS 'Departure City',
        DestinationCity.City AS 'Destination City'
    FROM Routes
    INNER JOIN Stops DepartureStop    ON DepartureStop.StopID   = Routes.departure_stop
    INNER JOIN Stops DestinationStop  ON DestinationStop.StopID = Routes.destination_stop 
    INNER JOIN Cities DepartureCity   ON DepartureCity.CityID   = DepartureStop.Cities_CityID 
    INNER JOIN Cities DestinationCity ON DepartureCity.CityID   = DestinationStop.Cities_CityID 
    
    WHERE Routes.price < 50
    

    【讨论】:

    • 谢谢它的工作!看起来很复杂,但我会试着弄清楚
    • 没那么复杂。只需从路线开始,然后加入出发地和目的地的结束表,然后将城市连接到这两个站点。如果您满意,请接受适合您的答案。干杯
    猜你喜欢
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2010-10-08
    相关资源
    最近更新 更多