gpt4 book ai didi

sql - Firebird SQL 中的交叉表更新

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:49 24 4
gpt4 key购买 nike

也许有人知道该怎么做。在 MySQL 中我会这样做:

UPDATE T1
SET T1.c2 = T2.c2
WHERE T1.c1 = T2.c1

不幸的是,在 Firebird 中尝试此操作时会导致错误并产生以下响应:

SQL Message : -204
Undefined name

Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -204
Table unknown
T1
At line 2, column 1

有人有想法吗?

最佳答案

Firebird UPDATE语句只能引用单个表。要做您想做的事,您有两种选择。

使用相关子查询:

UPDATE T1
SET c2 = (SELECT T2.c2 FROM T2 WHERE T2.c1 = T1.c1)

或使用 MERGE :

MERGE INTO T1
USING T2
ON T1.c1 = T2.c1
WHEN MATCHED THEN
UPDATE SET T1.c2 = T2.c2

关于sql - Firebird SQL 中的交叉表更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30000961/

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