我有 2 个表“A”和“B”。两者都有一个共同的列“名称”,并通过列“id”相互链接。表 A 中的“名称”列是空的,而表 B 中有数据。我的任务是用相应的 id 填充从表 B 到表 A 的该列中的所有数据。
我正在使用以下查询:
UPDATE A
SET A.name = (SELECT B.name from B WHERE A.id = B.id)
WHERE EXISTS
(SELECT B.name from B)
一旦我在 SQL 开发人员中运行查询,它就会卡住,我必须强制关闭它。谁能告诉我查询有什么问题?
最佳答案
试试这个:
UPDATE A
SET A.name = (SELECT B.name FROM B WHERE B.id = A.id AND B.name IS NOT NULL)
WHERE a.name IS NULL;
由于您使用的是 Oracle,这里是 IS NOT NULL 的引用.
这是 SQL Fiddle,您可以使用它:http://sqlfiddle.com/#!4/a5ad0/3
关于sql - 通过另一表中的列更新一个表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267329/