数据库
首页 > 数据库> > mysql-Ruby on Rails查询:连接表并选择多个列

mysql-Ruby on Rails查询:连接表并选择多个列

作者:互联网

有两种模型:微博和用户

“微博”包含4列:名称,类型,user_id和id

“用户”包含4列:名称,类型,地址和ID

微帖属于用户;用户包含许多微博.

我想查找每个用户有多少个微博,但是由于某种原因,我无法使查询正常工作.

我试过的查询是:

User.joins(:microposts).group("users.id").select("users.*, count(microposts.id) as postcount")

这仅从用户表中拉出属性,但从微博表中排除列,还排除我创建的计数列.

由于某些原因,

User.joins(:microposts).group("users.id").count

可以,但是只返回user.id和count.我也想拉其他列.

我也尝试使用“ includes”而不是“ joins”,但这只会返回users表的所有列,而不会返回microposts表的任何列.

User.includes(:microposts).group("users.id").select("users.*, count(microposts.id) as postcount")

有人可以帮忙吗?谢谢!

解决方法:

我认为,您既需要连接又需要包含.

User.joins(:microposts).
  includes(:microposts).
  group("users.id").
  select("users.*, count(microposts.id) as postcount")

标签:ruby-on-rails-4,sql,mysql
来源: https://codeday.me/bug/20191121/2054596.html