我想要做的就是寫東西像一個查詢:說我沒有使用任何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
所以你需要指定與條件加入
你得到它的工作? –