如何在Postgresql中列值等于时从另一个表插入数据?

时间:2018-04-20 04:32:51

标签: sql postgresql

在Postgres中,假设我有两张桌子。

表A:

ID Gender
1
1
2
2
3
3

表B:

ID Gender    
1   F
2   M
3   F

如何将表B中的性别值插入表A并获取如下所示的新表A: 表A:

ID Gender
1  F
1  F
2  M
2  M
3  F
3  F

我尝试过如下命令:

insert into a(gender) select gender from b 
where a.id=b.id;

它给了我错误信息:

  

表" a"有一个条目,但不能从查询的这一部分引用它。

2 个答案:

答案 0 :(得分:3)

请试试这个:

UPDATE TABLE "A" Set "Gender" = "B"."Gender"
FROM "B"
WHERE "A"."ID" = "B"."ID";

希望它会对你有帮助。

答案 1 :(得分:0)

你有没有试过joins? (即内部外部

SELECT a.ID, b.Gender    
FROM tableA a INNER JOIN tableB b 
               ON b.ID = a.ID;

但是,这将被视为分离的结果集,或者您可以执行插入操作