【问题标题】:Get latest record by JOIN TABLE with conditions通过 JOIN TABLE 获取最新记录和条件
【发布时间】:2021-12-14 05:47:44
【问题描述】:

我能够使用此查询(不添加日期条件)获得客户 c001 的最新购买 (package_id)。

SELECT  s1.date, s1.client_id, s1.package_id 
FROM purchaseHistory s1 
LEFT JOIN purchaseHistory s2 ON s1.date < s2.date 
                            AND s1.client_id = s2.client_id
WHERE  s1.released = '1'
  AND s1.verified = '1'
  AND s2.client_id IS NULL
  AND s1.client_id = c001

目前,我希望能在日期之前获得最新购买 (2021-10-26 23:59:59)。以下代码是我的查询。

SELECT  s1.date, s1.client_id, s1.package_id 
FROM purchaseHistory s1 
LEFT JOIN purchaseHistory s2 ON s1.date < s2.date 
                            AND s1.client_id=s2.client_id 
                            AND s1.date <= 2021-10-26 23:59:59 
WHERE  s1.released = '1'
  AND s1.verified = '1'
  AND s2.client_id IS NULL
  AND s1.client_id = c001

相反,它返回所有购买的 (package_id) 并忽略条件 (s1.date &lt;= 2021-10-26 23:59:59)

【问题讨论】:

  • AND 's1.date &lt;= 2021-10-26 23:59:59' 查看引号字符位置... AND s1.client_id = c001 c001 是否是某个表中的列?还是您松散了引号字符?
  • 您可以尝试在查询中添加“ORDER BY date DESC LIMIT 1”

标签: mysql sql phpmyadmin


【解决方案1】:
date(s1.date)<=CURDATE()

如果您正在使用 MySQL 并希望在当前日期之前或当前获取记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多