@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 делать. Буду рад если кто-то поможет.
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
@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'
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
Делис Инфо Москва
от 70 000 до 80 000 руб.