PostgreSQL循环遍历子查询

3

我想循环遍历一个select子查询的结果,并使用它们来获取另一张表中的数据:

SELECT alias, profile_picture 
FROM public.profile 
where user_id = (
    SELECT friend_user_id 
    FROM public.friends 
    where user_id = 1059948007363671)::text

显然,此查询返回:
ERROR:  more than one row returned by a subquery used as an expression

什么是循环遍历子查询结果并将其分配给临时变量的最佳方法,以便pubic.profile可以使用它来获取相应的个人资料信息?

SELECT alias, profile_picture FROM public.profile JOIN public.friends ON profile.user_id=friends.friend_user_id WHERE friends.user_id = 1059948007363671 - Mihai
好的,那就解决了 =)谢谢。我不能为你的回答投票,因为它是一条评论。也许你想重新发布它作为一个问题吗? - Jose Maria Landa
2个回答

2

使用in代替=

WHERE user_id IN 
    (
    SELECT friend_user_id::text
    FROM public.friends 
    WHERE user_id = 1059948007363671
    )

1
SELECT alias, profile_picture 
FROM public.profile 
JOIN public.friends 
ON profile.user_id=friends.friend_user_id 
WHERE friends.user_id = 1059948007363671

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接