PostgreSQL子选择问题

mel*_*bic 2 database postgresql

当我尝试执行select语句时,我总是会收到以下错误:

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

只有只有一个结果才有效.为什么以及如何修复?

SELECT name from person p where 
id = ( select prs from leader 
where age(leader.lastcourse) > '1 year');
Run Code Online (Sandbox Code Playgroud)

Eri*_* J. 5

您正尝试从似乎返回多个ID的选择中分配一个特定ID.OrbMan的解决方案将从子查询中随机获取第一个ID.如果您想要满足子查询条件的所有ID,

SELECT name from person p where  
id IN ( select prs from leader  
where age(leader.lastcourse) > '1 year'); 
Run Code Online (Sandbox Code Playgroud)

Mark使用JOIN而不是子查询的方法也有效.