我需要一个Active Record Query来获取一个数组。模型的CRUDS正常工作,但我需要在视图文件中获取数组。我有以下SQL语法。
select FirstName from Person.Person
LEFT JOIN Sales.SalesPerson
ON Person.BusinessEntityID = SalesPerson.BusinessEntityID
LEFT JOIN Sales.SalesTerritory
ON SalesPerson.TerritoryID = SalesTerritory.TerritoryID
where SalesPerson.BusinessEntityID is null and SalesPerson.TerritoryID is null
rails中的Active Record Query语法是什么?有什么想法吗?
答案 0 :(得分:2)
接受的答案将生成错误的查询,如下所示
select * from persons
left outer join sales_persons on sales_persons.person_id = persons.id
left outer join sales_territories on sales_territories.person_id = persons.id
SalesTerritory表与Person连接,但根据您的SQL,它应与SalesPerson
连接由于它是嵌套连接,因此以下将生成正确的SQL
Person.select(:first_name).left_joins(sales_person: :sales_territory).
where(sales_persons: {business_entity_id: nil, territory_id: nil}).
pluck(:first_name)
答案 1 :(得分:0)
除了大小写和表格名称之外,您的查询应该看起来像这样
Person.left_joins(:sales_person, :sales_territory).
where(sales_persons: {business_entity_id: nil, territory_id: nil}).
pluck(:first_name)