mysql - MYSQL:棘手的查询 - 需要构建中间变量?
问题描述
假设我们有下表
_________________________________________________________________________
|FlightNo | DepartureDate | Origin | Destination | Flightduration |
_________________________________________________________________________
| IB233 | 2018-12-31 09:30:45 | Berlin | Barcelona | 200 |
| IB222 | 2019-01-01 12:20:34 | Barcelona| Rome | 100 |
| LE111 | 2019-01-01 11:11:11 | Rome | NY | 400 |
__________________________________________________________________________
现在我想计算纽约目的地和柏林开始之间的时间差。我想检查整个 flightduration 是否 < 660 min。
我解决了这个问题,但它不起作用..
SELECT
TIMEDIFF(
(SELECT adddate(DepartureDate, INTERVAL FlightDuration
MINUTE)
FROM flightexecution
where ICAO_Code_Origin = 'Berlin'),
(SELECT DepartureDate
FROM flightexecution
where ICAO_Code_Destination = 'NY' AND ICAO_Origin NOT LIKE 'Berlin' AND)
) from flightexecution ;
结果 MySQL 只给了我一个“OK”,这意味着有些事情是错误的......
你们能帮帮我吗?
解决方案
您可以尝试这样的自联接查询
SELECT
A.Origin,
(TIME_TO_SEC(TIME_DIFF(A.DepartureDate, C.DepartureDate))/60 - A.FlightDuration - B.FlightDuration) AS `Transfer time (minutes)`,
A.DepartureDate,
(TIME_TO_SEC(TIME_DIFF(A.DepartureDate, C.DepartureDate))/60 + C.FlightDuration) AS `Overall Duration (minutes)`
FROM
flightexecution A INNER JOIN
flightexecution B
ON A.Destination = B.Origin INNER JOIN
flightexecution C
ON B.Destination = C.Origin
WHERE
A.Origin = 'Berlin'
AND C.Destination = 'NY'
推荐阅读
- reactjs - 即使使用文档中的 ref 示例,“ref 也不是道具”
- java - 我的代码没有按预期工作。十进制输出不应该是
- java - 问题在 ec2 中部署类似 springboot 的服务
- excel - 为两个值过滤两个动态列
- xamarin.android - 如何在 xamarin android 中使用 45 度的渐变着色?
- php - PHP krsort 到自定义排序
- ios - 触摸 UIWebview 隐藏/取消隐藏 inputAccessoryView randomaly
- android - 带有分页架构组件的初始占位符
- php - 我想组合两个不相等的数组,并希望显示一个的键和另一个的值以及重复
- asp.net-mvc - 从表 LINQ 中获取最后一条记录