gpt4 book ai didi

mysql - 选择特定数据SQL

转载 作者:行者123 更新时间:2023-11-29 10:07:32 27 4
gpt4 key购买 nike

尝试从我的数据库中选择特定变量的最新输入和第一个输入。

我使用以下内容:

SELECT treatment_log.fun FROM treatment_log LEFT JOIN customers ON treatment_log.treatment_fk=customers.id WHERE treatment_log.created_at=( SELECT MAX(created_at) FROM treatment_log) AND customers.id = ?

SELECT treatment_log.fun FROM treatment_log LEFT JOIN customers ON treatment_log.treatment_fk=customers.id WHERE treatment_log.created_at=( SELECT MIN(created_at) FROM treatment_log) AND customers.id = ?

其中一个是 MIN,另一个是 MAX。我试图根据日期(created_at)显示数据[这是自动生成的时间戳]。当前的代码似乎不能很好地工作。只会显示最近输入的数据,并且显示NULL。

如何升级此代码?

最佳答案

您需要限定子查询,以便它只选择您感兴趣的客户的 created_at 日期。否则,无论如何,您都将获得最小和最大 created_at 日期客户 ID,这些可能与您当前的客户不匹配。这就是为什么有时您没有返回数据的原因。尝试将子查询更改为:

( SELECT MAX(created_at) FROM treatment_log WHERE treatment_fk = ?)

所以你的整个查询将变成

SELECT treatment_log.fun 
FROM treatment_log
LEFT JOIN customers
ON treatment_log.treatment_fk=customers.id
WHERE treatment_log.created_at=(SELECT MAX(created_at) FROM treatment_log WHERE treatment_fk = ?)
AND customers.id = ?

您还需要对 MIN 子查询进行类似的更改。另请注意,您还需要将 customers.id 值绑定(bind)到此参数。

关于mysql - 选择特定数据SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51605031/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com