Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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,我的PostgreSQL数据库中有两个表 其中一个表称为“存档”,它有一个列“name”,这是两个单词的名字和姓氏,例如“John Smith”,还有一个空列,它希望充满“user_id” 第二个表称为“用户帐户”,它有三列,一列为“first_name”,一列为“last_name”,另一列为“id” 我的目标是实现一个查询,该查询使用存档中的列来选择用户帐户中相应的名字和姓氏,并返回将“id”存档到“用户id”列中您可以使用连接。例如: select a.*, ua.id as user_i

我的PostgreSQL数据库中有两个表

其中一个表称为“存档”,它有一个列“name”,这是两个单词的名字和姓氏,例如“John Smith”,还有一个空列,它希望充满“user_id”

第二个表称为“用户帐户”,它有三列,一列为“first_name”,一列为“last_name”,另一列为“id”


我的目标是实现一个查询,该查询使用存档中的列来选择用户帐户中相应的名字和姓氏,并返回将“id”存档到“用户id”列中

您可以使用
连接
。例如:

select a.*, ua.id as user_id
from archive a left join
     user_accounts ua
     on a.name = ua.first_name || ' ' || ua.last_name;
如果确实要更新列,请执行以下操作:

update archive a 
    set user_id = ua.id
    from user_accounts ua
    where a.name = ua.first_name || ' ' || ua.last_name;

请注意,名称匹配可能非常棘手。你可能没有预期的那么多比赛。如果这是一个问题,问另一个问题。在问题中包括示例数据和所需结果。

您可以使用
连接。例如:

select a.*, ua.id as user_id
from archive a left join
     user_accounts ua
     on a.name = ua.first_name || ' ' || ua.last_name;
如果确实要更新列,请执行以下操作:

update archive a 
    set user_id = ua.id
    from user_accounts ua
    where a.name = ua.first_name || ' ' || ua.last_name;
请注意,名称匹配可能非常棘手。你可能没有预期的那么多比赛。如果这是一个问题,问另一个问题。在问题中包括样本数据和期望的结果