gpt4 book ai didi

mysql - 自更新sql查询的问题

转载 作者:行者123 更新时间:2023-11-29 06:57:47 25 4
gpt4 key购买 nike

我正在尝试根据同一个表和另一个表上的内部联接的值来更新表。

下面是查询:-

update coin_txn_normalization  cn 
SET cn.is_merchant_pay_rel='H'
where cn.coin_txn_id IN(
SELECT ctn.coin_txn_id
FROM hold h
INNER JOIN coin_txn_normalization ctn
ON h.txn_id = ctn.coin_txn_id
);

我收到以下错误

SQL Error (1093): Table 'cn' is specified twice, both as a target 
for 'UPDATE' and as a separate source for data
Affected rows: 0 Found rows: 0 Warnings: 0 Duration for 0 of 1 query: 0.000 sec.

我该如何解决这个错误。如果还需要什么,请告诉我。

最佳答案

正如您所知,MySQL 并不会将所有正在更新(或删除)的表都在 whereset 子句中引用。

就您而言,这很容易解决:

update coin_txn_normalization  cn 
set cn.is_merchant_pay_rel = 'H'
where cn.coin_txn_id in (select h.txn_id from hold);

无论如何,这是一个简单得多的版本。如果 hold 中没有多个匹配项,则 join 也是合适的:

update coin_txn_normalization cn join
hold h
on h.txn_id = cn.coin_txn_id
set cn.is_merchant_pay_rel = 'H' ;

关于mysql - 自更新sql查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44907159/

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