다국어 앱을 만들었습니다.하나의 레코드가 존재하지 않으면 다른 것을 선택하십시오
표 것들
|id| img |url|
--------------
|1 | | |
|2 | | |
|3 | | |
표 things_translations
|id| thing_id | title | locale |
---------------------------------
|1 | 1 | | en |
|2 | 2 | | en |
|3 | 3 | | en |
|4 | 2 | | ru |
내가 영어로 기본 언어 (로케일 = EN)가 : 데이터베이스는 것 같습니다.
번역본이 things_translations
에서 영어가 아닌 다른 언어로 번역되어 있는데이 언어가 아직 데이터베이스에 존재하지 않는다면 영어 버전을 얻고 싶습니다.
나는 아래의 쿼리를 시도했지만 대신 모든 레코드를 반환했습니다
select things.id
FROM things
INNER JOIN things_translations ON things.id = things_translations.thing_id
WHERE CASE WHEN things_translations.locale = ru IS NULL
THEN things_translations.locale = en END
을 내가 thing_id:2
모두 언어를 얻을 수 위의 쿼리로하지만 난 단지 ru locale
하지 en
존재하기 때문에 싶어.
당신은 또한 예상 된 결과를 추가 할 수 있습니까? – jarlh
OR 조건을 사용해 보시지 않겠습니까? case보다는 things_translations.locale = ru 또는 things_translations.locale = en – Gopidoss
@jarlh 나는 한 가지 로케일을 매번 모든 것에 대해 매번 가져오고 싶습니다. –