Sql 如何按另一个表的值按子代顺序对用户排序?(轨道)
我有一个用户表和一个订单表。一个用户可以有多个订单 用户表:Sql 如何按另一个表的值按子代顺序对用户排序?(轨道),sql,ruby-on-rails-4,Sql,Ruby On Rails 4,我有一个用户表和一个订单表。一个用户可以有多个订单 用户表: | id | username | email | ------------------------- | .. | .... | ..... | ------------------------- | id | user_id | price | ------------------------ | .. | ..... | .... | ------------------------ 订单表: | id | u
| id | username | email |
-------------------------
| .. | .... | ..... |
-------------------------
| id | user_id | price |
------------------------
| .. | ..... | .... |
------------------------
订单表:
| id | username | email |
-------------------------
| .. | .... | ..... |
-------------------------
| id | user_id | price |
------------------------
| .. | ..... | .... |
------------------------
如何按子代顺序按顺序对用户进行排序
现在我能想到的是:
@users = User.order('orders.count desc').all
但这似乎不正确。有人能帮忙吗?提前谢谢。谢谢你们!我刚刚从这个网站上找到了答案: 我添加以下代码:
User.joins(:orders).group("users.id").order('count(orders.id) desc').all
它就像魔法一样工作 你必须使用包含和引用。如果我知道答案,我不会像这样发布问题,谢谢!很抱歉你必须使用聚合函数。我会在一小时内给你回复。我现在在打电话。哈哈,你用的是什么数据库?Mysql和Postgress可能有不同的语法,我用的是Mysql,谢谢大家的真诚支持。我已经找到了答案,我把它贴在下面())是的。我把它标为答案