我有这个代码
User.find(:all, :limit => 10, :joins => :user_points,
:select => "users.*, count(user_points.id)", :group =>
"user_points.user_id")
它会生成以下sql
SELECT users.*, count(user_points.id)
FROM `users`
INNER JOIN `user_points`
ON user_points.user_id = users.id
GROUP BY user_points.user_id
LIMIT 10
除了User.find_by_sql
和手动输入查询之外,有没有可能使用左连接而不是内连接?
发布于 2009-10-02 14:20:10
你可以试试这个
User.find(:all, limit: 10,
joins: "LEFT JOIN `user_points` ON user_points.user_id = users.id" ,
select: "users.*, count(user_points.id)",
group: "user_points.user_id")
发布于 2017-12-09 15:19:29
Rails5有一个left_outer_joins方法。所以你可以这样做
User.left_outer_joins(:user_points)
或使用别名
User.left_joins(:user_points)
https://stackoverflow.com/questions/1509692
复制相似问题