【发布时间】:2018-02-21 16:08:51
【问题描述】:
SQL 新手我有两个表table_A 和table_B。
我想根据table_B 上的inner join 将数据添加到table_A 的特定列中。我正在使用 Oracle,遵循此 method 我的 SQL 如下所示:
我第一次尝试:
INSERT INTO table_A (target_column)
SELECT table_B.wanted_data
FROM table_B INNER JOIN table_A ON table_B.someColumnB = table_A.someColumnA
这里的问题是它会将数据插入到我的table_A 的新行中,而不是现有行中。
所以我从 stackoverflow 线程中尝试了:
UPDATE(SELECT table_A.target_column, table_B.wanted_data
FROM table_A
INNER JOIN table_B
ON table_A.someColumnA = table_B.someColumnB
)
SET table_A.target_table = table_B.wanted_data
但是“SQL命令未正确结束”也不起作用
编辑: target_column 和 wanted_data 在我的数据集中具有相同的名称,不确定它是否会改变任何内容。
【问题讨论】:
-
您是否真的错过了检查主查询中的 SET 语句应该是
table_A.UsineId而不是table_A_UsineId? -
@KaushikNayak 想念我,我会纠正它
-
您是否已经完全通过该线程并尝试了所有替代方案?例如:您也可以使用
MERGE INTO。我认为您在复制和修改查询时可能犯了一个错误。 -
@KaushikNayak 没试过 MERGE,会试试
标签: sql oracle sql-update inner-join