首页 > 解决方案 > 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

标签: mysqlsql

解决方案


推荐阅读