@Mrikirill
Full Stack Dev

В одном запросе сгруппировать строки с условием?

Всем привет!

Есть запрос который возвращает данные:
Articles:
id | name | lang_code | translate_id
1 | test | en | 10
2 | article_en | en | 11
3 | article_us | us | 11

Как в одном запросе получит:
Articles:
id | name | lang_code | translate_id
1 | test | en | 10
3 | article_us | us | 11

Те если article имеет только 1 перевод то возвращаем en если имеет 2 перевода то возвращаем us
Пытался с having'ом не работает. Судя по всему нужно subquery делать. Буду рад если кто-то поможет.
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Если вариантов кодов всего два "en" и "не en", то можно попробовать так:

select ifnull(a_not_en.id, a_en.id), ifnull(a_not_en.name, a_en.name), ifnull(a_not_en.lang_code, a_en.lang_code), ifnull(a_not_en.translate_id, a_en.translate_id)
from Articles a_en
left join Articles a_not_en
on a_not_en.id = a_en.id
where a_en.lang_code = 'en'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы