我的PostgreSQL数据库中有两个表。
一个名为“Archive”的表有一个名为“name”的列,该列是两个单词的名字和姓氏,例如“John Smith”和一个空列,该列希望包含“user_id”。
第二个表,称为“用户帐户”,有三列,一列是“名字”,一列是“姓氏”,一列是“id”。
我的目标是实现一个查询,该查询使用Archive中的列来选择用户帐户中相应的名字和姓氏,并返回以将“id”存档到“userid”列中
最佳答案
您可以使用join
。例如:
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;
请注意,名称匹配可能非常棘手。你可能得不到你期望的那么多比赛。如果这是个问题,再问一个问题。在问题中包含示例数据和所需结果。
关于sql - 具有名称,名字和姓氏的PostgreSQL多表查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52350267/