将SQL查询转换为具有多对多关系的Rails查询,最佳实践是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将SQL查询转换为具有多对多关系的Rails查询,最佳实践是什么?相关的知识,希望对你有一定的参考价值。
嗨,这是我的数据模型:
并且我想将此查询转换为activeRecord API
select c.id, c.name, c.phone, c.created_at,c.updated_at,s.status
from contacts c,contacts_lists cl, contactstatuses s
where cl.list_id = ? and s.company_id = ? and c.id = cl.contact_id and c.id = s.contact_id
什么是最好的方法? ....也是这里的最佳实践是什么?,运行sql plain还是使用activeRecord API]
答案
select c.id, c.name, c.phone, c.created_at, c.updated_at, s.status
from contacts c
JOINS contacts_lists cl ON cl.contact_id = c.id
JOINS contactstatuses s ON s.contact_id = c.id
where cl.list_id = ?
and s.company_id = ?;
使用以下代码:
# I filled the id values (questionmarks) with a 1
Contact.select(:id, :name, :phone, :created_at, :updated_at, Contactstatus.arel_table[:status]).joins(:contacts_lists, :contactstatuses).where(contacts_lists: list_id: 1 , contactstatuses: company_id: 1 )
以上是关于将SQL查询转换为具有多对多关系的Rails查询,最佳实践是什么?的主要内容,如果未能解决你的问题,请参考以下文章