我有一个用户表和一个reporting_events表,其中reporting_events属于用户。
我要根据报告事件值对用户表进行排序。用户应该可以根据各种报告事件名称的值进行排序。
例如,可以有两个用户的报告事件,报告事件名称为“avg_response_time”,两个用户的报告事件值分别为1和2。我们应该能够按照用户的avg_response_time以降序和升序进行排序。
我尝试过的方法:
reports = users.joins(:reporting_events).where("reporting_events.name='avg_response_time'").order("reporting_events.value desc")
filter_params[:sort_order]
给出了列和排序方向。当我不使用distict时,我在用户列表中得到了重复的用户。
我要列出所有用户,即使该用户的reporting_events不存在。
1条答案
按热度按时间0lvr5msh1#
您需要用户使用
outer join
,而不是inner join
(默认):