使用嵌套的子选择更新Postgres中的记录

Gru*_*uck 2 postgresql subquery

我有一个表添加了一个新列,我想编写一个SQL语句来根据现有信息更新该列.以下是两个表和相关列

'leagues'
=> id
=> league_key
=> league_id (this is the new column)
'permissions'
=> id
=> league_key

现在,用简单的英语,我想做的就是这个

Set leagues.league_id to be permissions.id for each value of permissions.league_key

我曾经尝试过这样的SQL:

UPDATE联赛SET league_id =(SELECT id FROM permissions WHERE league_key =(SELECT distinct(league_key)FROM leagues))WHERE league_key =(SELECT distinct(league_key)FROM leagues)

但我收到一条错误信息

错误:用作表达式的子查询返回的多行

对此的任何帮助将不胜感激

Kub*_*aun 11

根据您的要求

对于permissions.league_key的每个值,将leagues.league_id设置为permissions.id

这样做.

UPDATE leagues
SET league_id = permissions_id
FROM permissions
WHERE permissions.league_key = leagues.league_key;
Run Code Online (Sandbox Code Playgroud)