想象一下,我拥有一家宠物店,并有客户和宠物表。
如果我做了一个类似的查询
SELECT
CUSTOMER.ID,
CUSTOMER.NAME,
CUSTOMER.EMAIL,
PET.NAME
FROM CUSTOMERS
INNER JOIN PETS ON PET.CUSTOMER_ID = CUSTOMER.ID
我应该得到的结果是
[1, 'John Doe', 'johndoe@jd.com', 'Bailey']
但如果我有多个宠物的客户,这意味着我会得到多行:
[1, 'John Doe', 'johndoe@jd.com', 'Bailey'],
[1, 'John Doe', 'johndoe@jd.com', 'Luna']
有没有一种方法可以压缩这些行,同时保留唯一的值?我怎么能得到这样的结果
[1, 'John Doe', 'johndoe@jd.com', ['Bailey', 'Luna']]
?
我试图选择不同的客户ID,但我认为只有当这是唯一的领域,你选择?当我添加要选择的其余字段时,仍然会得到重复的行
2条答案
按热度按时间8aqjt8rx1#
你可以使用string_agg函数来得到你想要的结果-
wlwcrazw2#
我还没有使用Oracle适配器的ActiveRecord,所以YMMV。