簡體   English   中英

具有名稱,名字和姓氏的PostgreSQL多表查詢

[英]PostgreSQL multi-table query with name, first_name, and last_name

我的PostgreSQL數據庫中有兩個表。

一個名為“ Archive”的表具有一個名為“ name”的列,該列是兩個單詞的名字和姓氏,例如“ John Smith”,還有一個空列,希望填充“ user_id”。

第二個表稱為“用戶帳戶”,具有三列,一列為“ first_name”,一列為“ last_name”,一列為“ id”。

我的目標是實現一個查詢,該查詢使用“存檔”中的列為用戶帳戶中的相應first_name和last_name進行選擇,然后將“ id”返回到“ user_id”列中進行存檔

您可以使用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;

請注意,名稱匹配可能非常棘手。 您可能不會獲得預期的匹配數。 如果發現這是一個問題,請問另一個問題 在問題中包括樣本數據和所需結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM