我想要做的就是写东西像一个查询:说我没有使用任何WHERE子句如何在Ruby on Rails中编写连接条件?
SELECT *
FROM Customers c
LEFT JOIN CustomerAccounts ca
ON ca.CustomerID = c.CustomerID
AND c.State = 'NY'
通知,但我需要我的JOIN有一个条件。我无法在Ruby on Rails中使用它。
你能帮我吗?
我想要做的就是写东西像一个查询:说我没有使用任何WHERE子句如何在Ruby on Rails中编写连接条件?
SELECT *
FROM Customers c
LEFT JOIN CustomerAccounts ca
ON ca.CustomerID = c.CustomerID
AND c.State = 'NY'
通知,但我需要我的JOIN有一个条件。我无法在Ruby on Rails中使用它。
你能帮我吗?
你的SQL代码,翻译成ActiveRecord的,看上去就像这样(使用joins
):
Customer.where(state: 'NY').joins(:customer_accounts)
的代码假设,您有协会成立:
class Customer
has_many :customer_accounts
end
可以加入与LEFT JOIN
表。只需通过连接条件的joins
,你会得到预期的结果
Customer.joins("LEFT JOIN CustomerAccounts
ON CustomerAccounts.CustomerID = Customers.CustomerID
AND Customers.State = 'NY'")
#=> SELECT * FROM Customers LEFT JOIN CustomerAccounts ON CustomerAccounts.CustomerID = Customers.CustomerID AND Customers.State = 'NY'
注:只是
.joins()
不INNER JOIN
所以你需要指定与条件加入
你得到它的工作? –