Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Postgresql中,当列值等于时,如何从另一个表插入数据?_Sql_Postgresql - Fatal编程技术网

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

在Postgresql中,当列值等于时,如何从另一个表插入数据?,sql,postgresql,Sql,Postgresql,在博士后,假设我有两张桌子 表A: ID Gender 1 1 2 2 3 3 表B: ID Gender 1 F 2 M 3 F 如何将表B中的性别值插入表A,并获得新表A,如下所示: 表A: 我试过这样的命令: insert into a(gender) select gender from b where a.id=b.id; 它给了我错误信息: 表“a”有一个条目,但不能从查询的这一部分引用它 您是否尝试过任何联接?(即内部或外部) 但是,这将被视为单独的结果

在博士后,假设我有两张桌子

表A:

ID Gender
1
1
2
2
3
3
表B:

ID Gender    
1   F
2   M
3   F
如何将表B中的性别值插入表A,并获得新表A,如下所示: 表A:

我试过这样的命令:

insert into a(gender) select gender from b 
where a.id=b.id;
它给了我错误信息:

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


您是否尝试过任何
联接
?(即内部或外部)

但是,这将被视为单独的结果集,或者您可以执行插入操作。请尝试以下操作:

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

希望它能对您有所帮助。

您还没有将表b与表a连接起来,比如从b中选择性别,其中a.id=b.id;insert语句还应包含值作为标准语法;你的语法根本不正确。
SELECT a.ID, b.Gender    
FROM tableA a INNER JOIN tableB b 
               ON b.ID = a.ID;
UPDATE TABLE "A" Set "Gender" = "B"."Gender"
FROM "B"
WHERE "A"."ID" = "B"."ID";