gpt4 book ai didi

ruby-on-rails - 如何分组 Left Outer Join

转载 作者:行者123 更新时间:2023-11-29 14:26:53 25 4
gpt4 key购买 nike

我有两个模型,UserTelephone。用户有很多电话。

我正在创建一个关于活跃管理员的列表,如果用户有两部手机,我想将它们组合在一起。我需要一个原始的 sql 查询,而我编写的查询给出了两个单独的行。

我想要的:

约翰传奇 123456, 654321

我得到的:

约翰传奇 123456
约翰传奇 654321

这是我的查询:

      a = "SELECT user.id, user.first_name, user.last_name, telephone.id AS telephone_id, telephone.number AS telephone_number,
FROM users
LEFT OUTER JOIN telephones ON telephones.user_id = user.id
GROUP BY users.id, telephones.user_id, telephones.number, telephones.id
ORDER BY user.id DESC"

最佳答案

如果您使用的是 Postgres 9.0+,那么您可以在此处使用 STRING_AGG 函数:

SELECT
u.id,
u.first_name,
u.last_name,
STRING_AGG(t.number, ',') AS telephone_number
FROM users u
LEFT JOIN telephones t
ON t.user_id = u.id
GROUP BY
u.id
ORDER BY
u.id DESC;

我只包含了您期望的实际显示的三列,但您可以根据需要添加其他列。

关于ruby-on-rails - 如何分组 Left Outer Join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56862546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com