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,谢谢大家的真诚支持。我已经找到了答案,我把它贴在下面())是的。我把它标为答案