Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 针对某些字段从另一个表更新表_Sql_Oracle - Fatal编程技术网

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子句中包含复合主键的所有字段,以便它只返回一行。谢谢