我正在为Oracle编写SQL语句,其中两个表之间存在一对多的关系。表Person具有表Purchase的外键,其具有Purchase Description字段。
我需要编写一个SELECT查询,它将获取所有购买记录/行并将它们相互追加
人员表
PersonID PersonName
1 John
购买表
PurchaseId (PK), PersonID(FK), PurchaseDescription
1 1 Book
2 1 Clothes
3 1 Bag
4 1 Dinner
因此查询的输出将如下所示
输出= 1,书:袋子:衣服:晚餐
输出将是一对多关系中的一行,其中有书,包,衣服和晚餐的单独记录。
感谢任何帮助。感谢
答案 0 :(得分:0)
这样做使用一个名为LISTAGG的函数,就像这个
一样SELECT 'Output = '||CAST(P.PersonID AS VARCHAR(100)), LISTAGG(Pur.PurchaseDescription, ':')
FROM Person P
LEFT JOIN Purchase Pur ON P.PersonID = Pur.PersonID
GROUP BY P.PersonID