mysql - SQL选择不在未来的最大记录

标签 mysql

我的表结构是这样的

tblclients

clientid
clientname

tblfacilities

facilityid
facilityname

tblclientfacilities

clientid
facilityid
moveindate

我允许我的用户输入 future 的日期作为入住日期,我想做的是选择我的客户所在的当前设施。我已经尝试过

SELECT 
 clientid,
 facilityid,
 moveindate

FROM 
 tblclientfacilities
WHERE 
 MAX(tblclientfacilities.moveindate) <= now()
GROUP BY
  tblclientfacilities.clientid

显然那是行不通的。有人能让我走上正轨吗?谢谢!

最佳答案

SELECT  clientId,
        (
        SELECT  facilityId
        FROM    tblclientfacilities cf
        WHERE   cf.clientId = c.clientId
                AND cf.moveDate <= NOW()
        ORDER BY
                cf.clientId DESC, moveDate DESC
        LIMIT 1
        ) AS currentFacility
FROM    tblclients c

tblclientfacilities (clientId, moveDate, facilityId) 上创建一个唯一索引以使其快速运行。

关于mysql - SQL选择不在未来的最大记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15794026/

相关文章:

mysql - 连接 2 个表以返回结果为零的查询

java - 使用Java Double的Mysql DOUBLE列数据被截断异常

mysql - 这里需要 `parent`上的索引吗?

mysql - 使sql View 可编辑

c# - 在 Entity Framework 中使用 SqlQuery RAW 查询返回匿名类型

mysql - 在mysql中使用正则表达式提取值

php - x::prepare() 的声明应与 PDO::prepare 兼容

mysql - SQLSTATE[42S22] : Column not found: 1054 Unknown column in my code

mysql - 在登记处检查行程容量

MySQL - 将日期范围扩展为单个日期