Mysql 更新的目标表不可更新
我需要运行此查询:Mysql 更新的目标表不可更新,mysql,sql,Mysql,Sql,我需要运行此查询: UPDATE TempRH T JOIN ( SELECT offices_id,MAX(Poids)AS Poids FROM TempRH GROUP BY offices_id )T1 ON T1.offices_id=T.offices_id SET T1.Poids=0 但在执行时,它会给出一个错误: #1288
UPDATE TempRH T
JOIN (
SELECT offices_id,MAX(Poids)AS Poids
FROM TempRH
GROUP BY
offices_id
)T1
ON T1.offices_id=T.offices_id
SET T1.Poids=0
但在执行时,它会给出一个错误:
#1288-The target table T1 of the UPDATE is not updatable.
有什么解决办法吗?在我看来,一个小小的改变就能解决这个问题吗
UPDATE TempRH T
JOIN (
SELECT offices_id,MAX(Poids)AS Poids
FROM TempRH
GROUP BY
offices_id
)T1
ON T1.offices_id=T.offices_id
SET T.Poids=0
将
T1.poid
更改为T.poid
。因此,您在表上设置了一个要更新的值,似乎TempRH
是不可更新的。还有什么要知道的?@JakeGould我更新了我的问题。@user3014966。告诉我们你真正想做什么。该查询工作将在表的每一行中放置POID=0。您如何使用MAX(POID)?您无法更新agregation结果您正在尝试更新您要加入的表,而不是您指定要更新的表。这仍然会将表中所有行的POID设置为0,但这可能是他想要的:)。这可以通过updatetemprh Set poids=0轻松完成代码>我没有考虑这一点,因为我立即明白了为什么表不能更新。但是是的,你是对的Filipe:)我想说一个拥有计数(POID)>一个_数
在这个查询中是有意义的,否则,只需像你说的那样设置POID=0
!