Sql 针对某些字段从另一个表更新表
我需要您帮助更新表中的更改 我要更新的表是Sql 针对某些字段从另一个表更新表,sql,oracle,Sql,Oracle,我需要您帮助更新表中的更改 我要更新的表是IP\u VISIT\u EASTERN\u REGION,我要更新的字段是VISIT\u STAT 所以我写了这个查询 UPDATE IP_VISIT_EASTERN_REGION SET IP_VISIT_EASTERN_REGION.VISIT_STAT=TEST_IP_VISIT_EASTERN_REGION.VISIT_STAT WHERE IP_VISIT_EASTERN_REGION.VISIT_ID = TEST_IP_VISIT_EAS
IP\u VISIT\u EASTERN\u REGION
,我要更新的字段是VISIT\u STAT
所以我写了这个查询
UPDATE IP_VISIT_EASTERN_REGION SET
IP_VISIT_EASTERN_REGION.VISIT_STAT=TEST_IP_VISIT_EASTERN_REGION.VISIT_STAT
WHERE IP_VISIT_EASTERN_REGION.VISIT_ID = TEST_IP_VISIT_EASTERN_REGION.VISIT_ID
问题是我出错了
ORA-00904 INVALID IDENTIFIER
这是正确的方法吗
我们将非常感谢你的帮助
谢谢您不能使用联接从
选择写入更新。试试这种方法
就你而言:
UPDATE IP_VISIT_EASTERN_REGION REGION
SET REGION.VISIT_STAT= ( SELECT TEST.VISIT_STAT
FROM TEST_IP_VISIT_EASTERN_REGION TEST
WHERE REGION.VISIT_ID = TEST.VISIT_ID )
WHERE EXISTS ( SELECT TEST.VISIT_STAT
FROM TEST_IP_VISIT_EASTERN_REGION TEST
WHERE REGION.VISIT_ID = TEST.VISIT_ID );
小提琴:
那么问题出在哪里呢?为了清楚起见,请提供表格结构。谢谢,但我发现了这个错误。。ORA-01427:单行子查询返回多个行VISIT\u ID
在TEST\u IP\u VISIT\u EASTERN\u区域中不是主键
?我想它会在您的表中标识一个唯一的行?否则,您如何知道TEST
表中的哪个记录用于更新?我有一个复合键,键是什么?您的WHERE
应该基于此键。在WHERE子句中包含复合主键的所有字段,以便它只返回一行。谢谢