gpt4 book ai didi

MySQL - 更新具有最高开始日期的行

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:55 26 4
gpt4 key购买 nike

我正在尝试使用以下方式更新具有最高开始日期的成员行:

UPDATE at_section_details a 
SET a.sd_end_date = ?
, a.sd_details = ?
WHERE a.cd_id = ?
AND a.sd_start_date = (SELECT MAX(b.sd_start_date)
FROM at_section_details b
WHERE b.cd_id = ?)

错误信息是:“updateYMGroup 中的 SQLException:java.sql.SQLException:您无法在 FROM 子句中指定要更新的目标表‘a’

表结构为:sd_id - 主键

cd_id - 外键(多次出现)

sd_section

sd_pack

sd_start_date

sd_end_date

sd_details

一个成员(cd_id)可以开始然后转出。然后成员(member)可以再次转入(新的开始日期)。当他们转出时,我们想要选择最大开始日期以转出。

如有任何帮助,我们将不胜感激。

问候,

格林

最佳答案

您应该能够将 LIMIT 语句与 ORDER BY 一起使用。沿着这些线的东西:

UPDATE at_section_details a
SET a.sd_end_date=?, a.sd_details=?
WHERE a.cd_id=?
ORDER BY a.sd_start_date DESC
LIMIT 1

关于MySQL - 更新具有最高开始日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28789347/

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