mysql - MySQL 无法从子查询中的查询访问字段
问题描述
我正在努力解决这个问题。我查看了此处发布的许多类似问题,但找不到适合我的解决方法。
我有三个表,ctRequests
保存每个用户提出的预订请求,ctBookings
保存确认预订的详细信息,ctBookingsUsers
将可变数量的用户与每个确认的预订联系起来。
我需要查询返回所有未来的请求,并与该用户上次确认的预订进行交叉引用,直到但不超过请求日期。我遇到的问题是此语句返回错误“未知列:'where 子句'中的'ctRequests.reqDate'”
SELECT reqID, reqDate, location, startTime, userID, userName, lastBooking
FROM ctRequests
LEFT JOIN
(SELECT userID, MAX(resDate) AS lastBooking
FROM ctBookings
LEFT JOIN ctBookingsUsers
USING(bookingID)
WHERE resDate <= ctRequests.reqDate
GROUP BY userID) prevBookings
USING(userID)
LEFT JOIN UserNames
USING(userID)
WHERE reqDate >= NOW()
ORDER BY reqDate, location, startTime
请有人建议我如何解决这个问题。
编辑 -
根据要求,可以在此处找到 sqlFiddle
解决方案
推荐阅读
- swift - 模型 I/O – 如何使用 `makeVerticesUniqueAndReturnError()` 实例方法?
- objective-c - 显示可滚动项 Objective-C
- javascript - 调用 XMLHttpRequest 时控制台中的不同响应
- python - 如何在python中对二维列表中的所有邻居求和
- python - 通过套接字发送二进制文件的问题,python
- powershell-2.0 - 抑制来自 UTF-8 Powershell 的 BOM
- html - 水平菜单滑块
- angular - 是否可以在 Angular 组件中验证服务调用?
- python - Pandas 像嵌套计数一样出色
- sql - 查询应该返回 0 但返回 1