首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左外连接使用(>=6) ORM?

左外连接使用(>=6) ORM?
EN

Stack Overflow用户
提问于 2020-12-13 01:53:51
回答 1查看 1.7K关注 0票数 0

是否有一种方法可以简单地使用rails ActiveRecord进行左外部连接?

我看到这里有一些使用原始SQL的方法,但我想使用“rails方式”(假设有rails方式)

即检索由栗色区域表示的记录的查询:

为什么不使用原始SQL (如这里) --这是一个公平的问题。我的应用程序没有原始sql,只有表单customer.purchases的语法,所以我希望在整个应用程序中保持代码的一致性。

EN

回答 1

Stack Overflow用户

发布于 2020-12-13 02:25:09

Rails >= 5似乎具有内置的功能。

这里就是一个简单的例子:

代码语言:javascript
复制
User.left_outer_joins(:posts)
=> SELECT "users".* FROM "users" LEFT OUTER JOIN "posts" ON "posts"."user_id" = "users"."id"

这里的另一个例子是:

代码语言:javascript
复制
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):

代码语言:javascript
复制
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.id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65271701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档