我正在尝试通过将值与另一个表连接来更新表。 这是我到目前为止的查询。
UPDATE LOGIN SET LOGIN.DISABLED_IND = 'N', LOGIN.DREASON = 'Test'
FROM CONTACT
WHERE CONTACT.CONTACT_ID = LOGIN.CONTACT_ID
AND CONTACT.RID ='abc'
当我运行这个时,我得到这个
[Error Code: 933, SQL State: 42000] ORA-00933: SQL command not properly ended
谢谢
最佳答案
如果您希望更新 LOGIN
中的大部分行,那么使用 EXISTS 可能会更有效
UPDATE LOGIN l
SET l.DISABLED_IND = 'N',
l.DREASON = 'Test'
WHERE EXISTS (
SELECT 1
FROM CONTACT c
WHERE c.CONTACT_ID = l.CONTACT_ID
AND c.RID ='abc' )
如果您要更新 LOGIN
中相对较小的部分行,Yahia 使用 IN 的方法可能会更有效
UPDATE LOGIN l
SET l.DISABLED_IND = 'N',
l.DREASON = 'Test'
WHERE l.contact_id IN (
SELECT c.contact_id
FROM CONTACT c
WHERE c.RID ='abc' )
关于SQL 根据与另一个表的连接更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6892215/