Я создал приложение для нескольких языков. База данных выглядит следующим образом:Если одна запись не существует, выберите другую
Таблица вещей
|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 |
У меня есть язык по умолчанию на английском языке (локаль = еп).
Когда я получаю переводы title
от 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
Почему вы не пытаетесь выполнить условие ИЛИ? а не case things_translations.locale = ru или things_translations.locale = en – Gopidoss
@jarlh Я хочу получить только одну локаль каждый раз для каждой вещи не всех. –