2012-12-03 24 views
1
Category 
String id; 
String name; 
boolean enabled; 

Product 
String id; 
String name; 
boolean enabled; 
int categoryId; 

我需要搜索所有enabled類別實際上有products那些products應該有enabled設置爲true的。如何查詢我的has_many關聯表的參數?

我並不擅長SQL查詢,所以有人請指點我正確的方向?

+0

我可以用這樣做很容易在Rails包含(:產品) .where('products.enabled =?AND categories.enabled =?',true,true)但我如何使用RAW SQL來做到這一點? – lemon

+0

您是否還想獲取關聯的產品數據? –

+0

不,我不是我只是想要的類別列表:-) – lemon

回答

3

這就是:

SELECT Category.* FROM Category 
INNER JOIN Product ON Category.id=Product.categoryId 
WHERE Category.enabled = 1 AND Product.enabled=1 
GROUP BY Category.id 

我不知道在你的數據庫的布爾值表示,假設它是1/0

+0

爲什麼'RIGHT JOIN'?無論如何,任何'NULL'類別都會被'WHERE'條件過濾掉。 –

+0

@CL。 100%權利,INNER JOIN將會做 – lvil

+0

當我開始工作時,會測試這個,謝謝! – lemon