正如标题所示,我需要将更新和连接语句更改为insert语句。如何在SET
语句中加入UPDATE
时这样做?
更新声明:
UPDATE tableA
SET A = tableB.A
FROM tableB
JOIN tableC ON tableB.C = tableC.C
WHERE tableC.D = tableA.D
答案 0 :(得分:2)
您的表格为空,因此tableC.D = tableA.D
无法提供任何内容。
愿你正在寻找这样的东西吗?:
INSERT INTO tableA (A)
SELECT DISTINCT tb.A
FROM tableB tb
JOIN tableC tc ON tb.C = tc.C
或者可能包含D
列:
INSERT INTO tableA (A, D)
SELECT DISTINCT tb.A, tc.D
FROM tableB tb
JOIN tableC tc ON tb.C = tc.C
请注意,此处使用DISTINCT
来分发重复记录。
答案 1 :(得分:0)
通常,最好在INSERT语句中包含所有列名。您可以通过将tableA连接到tableC来删除WHERE子句。但只是你问题的简单答案是:
INSERT INTO tableA (<col name you want to update>)
VALUES (SELECT <one value> FROM tableB JOIN tableC ON tableB.C = tableC.C JOIN tableA ON tableC.D = tableA.D
);