SQL更新查询在where子句中使用聚合函数和group by?

标签 sql mysql

我有一个表,其中包含特性的列表信息。一个属性可能会多次出现在表中,每次列出一次。以下是相关栏目:

ListingID <- primary key
PropertyID
ListingEndDateTime

我正在尝试开发一个查询来更新表中每个属性的最新列表的 EndDateTime。该查询会将每个属性的 EndDateTime 设置为相同的值。

我尝试过一些方法,但到目前为止都没有成功。我该如何编写这样的查询?

最佳答案

以下假设 ListingID 是自动递增主键:

update PropertyListing p
inner join
(
select
 max(ListingID) as ListingID,
 PropertyID
from
 PropertyListing
group by
 PropertyID
) latest on latest.ListingID = p.ListingID
set
 p.ListingEndDateTime = now();

关于SQL更新查询在where子句中使用聚合函数和group by?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910949/

相关文章:

sql - 如何获取未在目标日期运行的天数

php - 奇怪的 SQL 错误 IIS 7

mysql - 如何更新 MySQL 中的两个(或更多)可靠列

sql - 类似于 MySQL FIELD() 函数的 MS SQL Server 功能是什么?

php - PDO:为 MATCH() 查询绑定(bind)用单引号括起来的值

PHP MYSQL数组

sql - 在 SQL Server 上仅显示一个数据库

c# - 如何在 C# 中创建将部署在 DBO 以外的模式中的 CLR 过程

mysql - 对于相同的 "where"子句,select count(*) 比 select * 花费的时间长得多?

sql - PostgreSQL UNION 仅忽略特定列的重复项