我想获得一对车站之间特定日期的列车列表: 这些是我的表。
`route`
(
`train_id`,
`Stop_number`,
`Station_id`,
`Arrival_time`,
`Departure_time`,
`Source_distance`
)
`train`
(
`Train_id`,
`Train_name`,
`Train_type`,
`Source_station`,
`Destination_Station`,
`Source_id`,
`Destination_id`
)
`train_status`
(
`Train_id`,
`Available_date`,
`Booked_seat`,
`Waiting_seat`,
`Available_seat`
)
我正在为铁路预订系统创建一个mysql数据库。 我是mysql的新手,但仍尝试使用内部联接编写此查询。 请帮我解决这个问题。
Select Route.Train_id, Train.Train_name, Train_status.Available_date
FROM Route INNER JOIN Train
ON Route.Train_id = Train.Train_id
INNER JOIN
Train_status ON Train.Train_id= Train_status.Train_id
WHERE (Route.Station_id IN
(Select Source.Station_id
FROM Route AS Source INNER JOIN
Route AS Destination ON Source.Train_id=
Destination.Train_id WHERE (Source.Stop_number-Destination.Stop_number<0)AND
(Source.Station_id=@Source) AND (Destination.Station_id=@Dest) )) AND
(Train_status.Available_Date = @Available_Date)
答案 0 :(得分:1)
这是类似尝试它,让我知道这是否有效:
Select Route.train_id, Train.Train_name, Train_status.Available_date
FROM Train
INNER JOIN Train_status ON Train.Train_id= Train_status.Train_id AND Train_status.Available_Date = @Available_Date
INNER JOIN Route AS Source ON Source.Train_id=Train.Train_id and Source.Station_id=@Source
INNER JOIN Route AS Destination ON Destination.Train_id=Train.Train_id and Destination.Station_id=@Dest