首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改此查询以返回关联,而不是在Rails和Postgres中返回数组?

如何更改此查询以返回关联,而不是在Rails和Postgres中返回数组?
EN

Stack Overflow用户
提问于 2016-12-12 20:53:14
回答 1查看 36关注 0票数 0

假设我有这样的查询:

代码语言:javascript
复制
t.pool_tournament_matches
.where(status: "unstarted")
.joins("INNER JOIN pool_tournament_match_users ON pool_tournament_match_users.pool_tournament_match_id = pool_tournament_matches.id")
.joins("INNER JOIN users ON users.id = pool_tournament_match_users.user_id")
.group("pool_tournament_matches.id")
.select("pool_tournament_matches.*, COUNT(users.id) AS user_count")
.select {|m| m.user_count == 2}

结果确实返回正确的匹配,但它是一个数组,与RABL模板引擎不能很好地工作。将查询转换为数组的内容是

代码语言:javascript
复制
.select {|m| m.user_count == 2}` I think.

我将如何使用SQL来完成这个任务,这样它就会返回一个关联,如果需要的话,我可以进一步链接它。

我试过:

代码语言:javascript
复制
t.pool_tournament_matches
.where(status: "unstarted")
.joins("INNER JOIN pool_tournament_match_users ON pool_tournament_match_users.pool_tournament_match_id = pool_tournament_matches.id")
.joins("INNER JOIN users ON users.id = pool_tournament_match_users.user_id")
.group("pool_tournament_matches.id")
.select("pool_tournament_matches.*, COUNT(users.id) = 2)

但不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 21:26:41

代码语言:javascript
复制
t.pool_tournament_matches
.where(status: "unstarted")
.joins("INNER JOIN pool_tournament_match_users ON pool_tournament_match_users.pool_tournament_match_id = pool_tournament_matches.id")
.joins("INNER JOIN users ON users.id = pool_tournament_match_users.user_id")
.group("pool_tournament_matches.id")
.having("COUNT(users.id) = 2")
.select("pool_tournament_matches.*, COUNT(users.id) AS user_count")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41109356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档