alex4answ
@alex4answ

Как получить данные из 2 таблиц по разным условиям?

Добрый день.

Есть таблицы:
5deb7a2d0a1db897963127.png

Setting - список настроек
Setting_Value - список значений настроек:
domain_id (null) // Если NULL, то настройка общая, не привязана к домену
   language_id (null) // Если NULL, то настройка общая, не привязана к языку


Как мне получить список всех настроек для текущего domain_id и language_id?

Если например некоторые могут быть с domain_id = null, или с language_id = null (или сразу оба столбца = null)

Тоесть, как не плодить избыточные данные, и не создавать копии одних и тех же значений для разных language_id и domain_id?

Приведу пример:
Настройка site_name (Имя сайта) может быть разная для каждого домена и языка
Настройка main_page (ID главной страницы) будет одинаковой для всех доменов, но разная для языков
и тп
Настройка disconnected (Флаг отключен ли домен), для доменов всех кроме 1 может быть одинаковой

Как мне не наплодить кучу избыточных данных? (хотя если сделать копии для каждого языка, для каждого домена, проблемы с выборкой не возникнет)
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
erge
@erge
Примус починяю
SELECT *
  FROM setting_salue sv
  JOIN setting s ON s.id = sv.setting_id
  WHERE (sv.domain_id = DOMAIN_ID OR sv.domain_id IS NULL)
    AND (sv.language_id = LANG_ID OR sv.language_id IS NULL)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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