[英]update statement with join and where clause
使用之前代碼中的一些更新和連接語句並嘗試使用 spark sql 語句來獲得相同的結果表 1
insert into tab1
VALUES(1, 'A1', 'B1', 1),
(2, 'A2', 'B2', 0),
(3, 'A3', 'B3',1 ),
(4, 'A4', 'B4',1 ),
(5, 'A5', 'B5',0 ),
(6, 'A6', 'B6',1 )
;
表 2
insert into tab2
VALUES(1, 'A1', 'B1', 0),
(2, 'A2', 'B2', 1),
(3, 'A3', 'B3', 1),
(6, 'A6', 'B6', 0)
;
更新聲明
update tab1
set v1 = concat(t1.v1,t2.v1)
from tab1 t1
inner join tab2 t2 on t1.id =t2.id
where t2.v3 > 0
結果表1
1 A2A2 B1 1
2 A2A2 B2 0
3 A2A2 B3 1
4 A2A2 B4 1
5 A2A2 B5 0
6 A2A2 B6 1
知道為什么不
1 A1 B1 1
2 A2A2 B2 0
3 A3A3 B3 1
4 A4 B4 1
5 A5 B5 0
6 A6 B6 1
去掉FROM
子句中的tab1
並改為放置tab2
。 您可以在WHERE
子句中進行連接:
UPDATE tab1 t1
SET v1 = concat(t1.v1,t2.v1)
FROM tab2 t2
WHERE t1.id =t2.id AND t2.v3 > 0;
演示: db<>fiddle
原來之前的代碼在 MSSQL 上運行,其語法與在 MSSQL 服務器中嘗試后給出的預期結果相同
1 A1 B1 1
2 A2A2 B2 0
3 A3A3 B3 1
4 A4 B4 1
5 A5 B5 0
6 A6 B6 1
在 Postgresql 這個問題的評論中提到的 from_item 不能包含相同的更新表!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.