我们说我有两张桌子,一张有学校,另一张有课。两个表都有SchoolID,因此可以匹配。他们看起来像这样:
TableSchools
SchoolID SchoolName
1 SchoolOne
2 SchoolTwo
3 SchoolThree
TableClasses
ClassID SchoolID ClassName
1 1 ClassOne
2 1 ClassTwo
3 2 ClassThree
4 2 ClassFour
5 2 ClassFive
6 3 ClassSix
7 3 ClassSeven
我希望我的结果集像这样
SchoolOne SchoolTwo SchoolThree
ClassOne ClassThree ClassSix
ClassTwo ClassFour ClassSeven
NULL ClassFive NULL
我已经在TSQL中聆听过我可以使用group by with rollup
,但似乎不可能,或者至少我不明白如何使用它from here。< / p>
答案 0 :(得分:1)
不完全是一个支点,但应该在代码中允许相同的程序结果:
select ts.schoolName
, array_agg(tc.className order by tc.className) vals
from tableSchools ts
join tableClasses tc tc.schoolID=ts.schoolID
group by ts,schoolName
注意:根据您的客户端,返回JSON而不是数组可能更容易..如果您需要有关该部分的帮助,请告诉我,我会更新。