我有一個名爲translations的表。 (和相應的ActiveRecord類)。 此表包含以下字段 ID,key和valueRails3和Arel選擇使用IN和子選擇
我想選擇其中關鍵的一個給定的查詢+所有不符合查詢條件的翻譯匹配所有翻譯,但共享一個翻譯的關鍵它與查詢匹配。
產生的SQL可能看起來是這樣的:
SELECT * FROM TRANSLATIONS where key in
(select key from Translations where value like '%some search%')
我已經嘗試了一些東西,但我似乎無法弄清楚。 關於如何在Arel中表達這一點的任何想法?
嗨感謝您的回答。 這段代碼確實生成了一個看起來應該做這件事的sql語句,但是mysql在語法上抱怨錯誤。 它呈現如下: SELECT'translations'。* FROM'translations' WHERE('translates'.'key' IN (SELECT key FROM'translations' WHERE'translations'.'value' LIKE'%value1%') ) 雖然它應該呈現: SELECT'translations'。* FROM'translations' WHERE('translates'.'key' IN (SELECT'translations'.'key' FROM'translations' WHERE'translations'.'value 'LIKE'%value1%')) 有什麼辦法可以控制這個嗎? – 2010-08-18 18:43:14
使用項目(:'translations.key') – valodzka 2010-08-18 23:34:10