我有两个表 TBL_TEST1 和 TBL_TEST2,两个表中都有列 DISTRICT 和 NAME,两个表中的 DISTRICT 列中的数据相同,我想将 TBL_TEST2 所有 NAME 列值更新为“完成”,其中 TBL_TEST2 表中的 DISTRICT 值'两个表中均找到 1'。
下面是我的查询表
SELECT * FROM TBL_TEST1
DISTRICT NAME
1 Rashid
2 Ramish
1 Ali
1 Karim
Run Code Online (Sandbox Code Playgroud)
和
SELECT * FROM TBL_TEST2
DISTRICT NAME
1 DDD
2 DDDY
3 DDDD7
1 DD1
1 DDD4
Run Code Online (Sandbox Code Playgroud)
当我尝试时
UPDATE TBL_TEST2 SET TBL_TEST2.NAME = 'DONE' FROM TBL_TEST2 INNER JOIN TBL_TEST1 ON TBL_TEST2.DISTRICT = TBL_TEST1.DISTRICT WHERE TBL_TEST2.DISTRICT = '1'
Run Code Online (Sandbox Code Playgroud)
我收到下面的错误消息
ORA-00933: SQL command not properly ended
Run Code Online (Sandbox Code Playgroud)
我测试了其他帖子中的代码,我问,但是我的代码是正确的,为什么我仍然收到该错误消息
您的连接错误(您在 UPDATE 中使用 FROM) 此 JOIN 语法不适用于 ORACLE
Run Code Online (Sandbox Code Playgroud)UPDATE TBL_TEST2 SET TBL_TEST2.NAME = 'DONE' FROM TBL_TEST2 INNER JOIN TBL_TEST1 ON TBL_TEST2.DISTRICT = TBL_TEST1.DISTRICT WHERE TBL_TEST2.DISTRICT = '1';
在ORACLE中更新连接表的一个简单方法是基于使用连接选择作为表
UPDATE (
SELECT TBL_TEST2.NAME AS OLD_VALUE
FROM TBL_TEST2
INNER JOIN TBL_TEST1 ON TBL_TEST2.DISTRICT = TBL_TEST1.DISTRICT
WHERE TBL_TEST2.DISTRICT = '1' ) T
SET T.OLD_VALUE = 'DONE' ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18666 次 |
| 最近记录: |