发布于 2020-12-13 02:25:09
Rails >= 5似乎具有内置的功能。
这里就是一个简单的例子:
User.left_outer_joins(:posts)
=> SELECT "users".* FROM "users" LEFT OUTER JOIN "posts" ON "posts"."user_id" = "users"."id"这里的另一个例子是:
Author.left_joins :posts, :comments
# Produces:
Author Load (0.1ms) SELECT "authors".* FROM "authors" LEFT OUTER JOIN "posts" ON "posts"."author_id" = "authors"."id" LEFT OUTER JOIN "comments" ON "comments"."author_id" = "authors"."id"这个来自示例的RailsGuides也很容易知道(尽管它包含一些原始的SQL):
Customer.left_outer_joins(:reviews).distinct.select('customers.*, COUNT(reviews.*) AS reviews_count').group('customers.id')
#Produces:
SELECT DISTINCT customers.*, COUNT(reviews.*) AS reviews_count FROM customers
LEFT OUTER JOIN reviews ON reviews.customer_id = customers.id GROUP BY customers.idhttps://stackoverflow.com/questions/65271701
复制相似问题