我的列车明细表,
Table Name- traindetailtb
Id Train_Number Train_Name From To
1 27658 Venad Express ABC XYZ
2 27659 Venad Express XYZ ABC
我的火车日表,
Table Name- traindaystb
Id Train_Number Days
1 27658 Sunday
2 27658 Wednesday
3 27659 Saturday
4 27659 Friday
这是我的列车时刻表,
Table Name- scheduletb
Id Train_Number Station Time
1 27658 ABC 09:00am
2 27658 CDE 10:00am
3 27658 XYZ 11:00am
4 27659 XYZ 12:00pm
5 27659 CDE 01:00pm
6 27659 ABC 02:00pm
将有两个输入,从和到
我需要一个查询,给出给定站点之间的所有列车(即,列车号、列车名称、天数)
例如:
对于从-CDE到XYZ的输入-->
输出为--27658 Venad Express软件
对于从-XYZ到CDE的输入-->
输出为--27659 Venad Express M T
有人能帮我做这个吗。
最佳答案
你在找这样的东西吗?
SELECT q.train_number, MAX(t.train_name) train_name, GROUP_CONCAT(LEFT(d.days, 1)) days
FROM
(
SELECT s.train_number
FROM scheduletb s JOIN scheduletb e
ON s.train_number = e.train_number
WHERE s.station = 'CDE' -- from
AND e.station = 'XYZ' -- to
AND s.id < e.id
) q JOIN traindaystb d
ON q.train_number = d.train_number JOIN traindetailtb t
ON q.train_number = t.train_number
GROUP BY q.train_number
CDE -> XYZ
的输出:|列车|编号|列车|名称|天数|
|--------------|---------------|------|
|27658 |维纳德快车|西|
XYZ -> CDE
的输出:|列车|编号|列车|名称|天数|
|--------------|---------------|------|
|27659 |维纳德快递| S,F|
这里是SQLFiddle演示
关于mysql - MySQL查询以查找两个车站之间的火车,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24795257/