有2个表INFO
和ADDR
ADDR
有4列ID, LINE_1_ADDR, LINE_2_ADDR, TEMP_ADDR_ID
INFO
有4列ID, FIRST_NAME, LAST_NAME, ADDR_ID
我想在INFO.ADDR_ID
和ADDR.ID
INFO.ADDR_ID
中的数据替换为ADDR.TEMP_ADDR_ID
我有以下UPDATE查询,它给出了错误
ORA-00905:缺少关键字
以下是我的代码:
UPDATE INFO SET INFO.ADDR_ID = (CASE
WHEN ADDR.TEMP_ADDR_ID = INFO.ADDR_ID
THEN INFO.ADDR_ID = ADDR.ID
END);
我是涉及案例的SQL查询的新手,不知道哪里出错了。请帮忙!
由于
答案 0 :(得分:1)
如果你使用MYSQL
UPDATE INFO
INNER JOIN ADRR ON ADDR.TEMP_ADDR_ID = INFO.ADDR_ID
SET INFO.ADDR_ID = ADDR.ID
如果您使用ORACLE
使用此
UPDATE INFO SET INFO.ADDR_ID = (SELECT ADRR.ID
FROM ADRR
WHERE ADDR.TEMP_ADDR_ID = INFO.ADDR_ID)
答案 1 :(得分:0)
编辑:获取更多信息后,echo_Me的方法是更新的正确方法。
UPDATE INFO
JOIN ADDR ON /*your Join condition*/
SET INFO.ADDR_ID = ADDR.ID