SELECT BusLine.LineCode AS RouteID,
BusStation.Station AS StartStation, BusStation_1.Station AS EndStation,
BusStation_1.StationIndex - BusStation.StationIndex AS StopCount
FROM BusLine AS BusLine_1
INNER JOIN Area AS Area_1
ON BusLine_1.AreaID = Area_1.ID
INNER JOIN BusInfo AS BusInfo_1
ON BusLine_1.ID = BusInfo_1.BusLineID
INNER JOIN BusStation AS BusStation_1
ON BusInfo_1.ID = BusStation_1.BusInfoID
INNER JOIN
Area
INNER JOIN BusLine
ON Area.ID = BusLine.AreaID
INNER JOIN BusInfo
ON BusLine.ID = BusInfo.BusLineID
INNER JOIN BusStation
ON BusInfo.ID = BusStation.BusInfoID
ON BusStation_1.StationIndex > BusStation.StationIndex AND BusInfo_1.ID = BusInfo.ID
WHERE (Area.City = 'NewYork')
Я прочитал выше SQL в течение десяти минут, однако я не могу понять это из-за этой линии:Как написать этот SQL, чтобы сделать его легко понять
INNER JOIN
Area
INNER JOIN BusLine
Интересно, если кто-нибудь может объяснить это и перераспределить его, чтобы сделать его понятным? Схема
обновление:
Площадь:
ID
Name
шинопровода:
ID
AreaID --> ID in Area
LineCode
BusInfo:
ID
BusLineID --> ID in BusLine
Автовокзалы:
BusInfoID --> ID in BusInfo
BTW, я использую Access, кажется, что я должен использовать ()
, чтобы обернуть innjer join
.
Вы должны указать свою схему, а затем только любой, кто мог бы объяснить – Tushar