【问题标题】:Postgresql calling a function in another function passing an argument from the main functionPostgresql 在另一个函数中调用一个函数,从主函数传递一个参数
【发布时间】:2020-11-07 13:58:47
【问题描述】:

我正在使用 Postgresql,我有一个函数可以检索以学校 ID 作为参数的所有教师(姓名、年龄和学科列)

当前查询如下所示

select id, (select * from getallteachers(schools.id)) 
from schools

这给我一个错误,说子查询不能返回多个值,然后我尝试了这个

select id, getallteachers(schools.id)
from schools

这会将所有列(姓名、年龄等)合并为一列作为记录

我想要得到的结果集是

schoolid | teachers name | teachers age | teachers subject  

【问题讨论】:

    标签: sql postgresql set-returning-functions


    【解决方案1】:

    使用横向连接:

    select s.id, g.*
    from schools s cross join lateral
         getallteachers(s.id) g
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 2012-08-02
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多