假设有两个表,table_a 和 table_b,它们有一个共同的列 common_column,我们想要通过连接这两个表并根据某些条件更新 table_a 的列。
-- 创建表 table_a CREATE TABLE table_a ( id SERIAL PRIMARY KEY, common_column INT, data_a VARCHAR(255) ); -- 创建表 table_b CREATE TABLE table_b ( id SERIAL PRIMARY KEY, common_column INT, data_b VARCHAR(255) ); -- 插入一些示例数据 INSERT INTO table_a (common_column, data_a) VALUES (1, 'A1'), (2, 'A2'), (3, 'A3'); INSERT INTO table_b (common_column, data_b) VALUES (1, 'B1'), (2, 'B2'), (3, 'B3');
现在,我们使用 UPDATE 语句连接这两个表并更新 table_a 的数据:
UPDATE table_a SET data_a = table_b.data_b FROM table_b WHERE table_a.common_column = table_b.common_column;
在这个例子中,我们使用 UPDATE ... FROM ... WHERE 语法。这个语句将 table_a 的 data_a 列更新为 table_b 的对应行的 data_b 列的值,条件是它们的 common_column 列相匹配。
更偏向实际开发的SQL示例:
update table_a set column_a=updatetable.column_a from ( select column_a,id from table_b where "id" in (select base_id from table_a gausa where column_b is not null and column_c=0 and column_a is null) ) updatetable where table_a.column_b is not null and table_a.column_c=0 and table_a.column_a is null and updatetable.id=table_a.base_id
还没有评论,来说两句吧...