번역이라는 테이블이 있습니다. (그리고 해당하는 ActiveRecord 클래스). 이 테이블에는 다음 필드가 포함되어 있습니다. ID, 키 및 값Rails3 및 Arel을 사용하여 IN 및 subselect를 선택하십시오.
키가 주어진 쿼리 + 쿼리와 일치하지 않는 모든 번역을 선택하고 키를 번역과 공유하는 모든 번역을 선택하고 싶습니다. 이는 쿼리와 일치합니다.
결과 SQL은 다음과 같이 보일 수 있습니다 :
SELECT * FROM TRANSLATIONS where key in
(select key from Translations where value like '%some search%')
나는 몇 가지를 시도했습니다,하지만 난 그것을 알아낼 수 없습니다. Arel에서 이것을 표현하는 방법에 대한 아이디어가 있으십니까? 이 같은
안녕 감사합니다. 이 코드는 SQL 문을 생성하지만 SQL 문을 생성합니다. 그러나 mysql은 구문 오류로 인해 불만을 나타냅니다. 그것은 다음을 렌더링합니다 : SELECT'번역 '. * FROM'번역'WHERE ('translations'.'key') (SELECT 키 FROM'번역'WHERE'번역'. 값'LIKE '% 값 1 %')) 렌더링 할 때 : SELECT'translations'. * FROM'translations' WHERE ('translations'.'key' IN (SELECT'translations'.'key' FROM'translations' WHERE'translations'.value) 'LIKE '% value1 %')) 이것을 제어 할 수있는 방법이 있습니까? –
프로젝트 사용 (: 'translations.key') – valodzka