Mysql, Doctrine 1.2 - сложный запрос на соединение - PullRequest
1 голос
/ 31 января 2012

Я работаю с системой конфигурации, которая сохранит некоторые параметры для различных платформ в базе данных MySQL.Вот таблицы settings(id, desc, value), settings_overrides(id, settings_id, value, platform_id), platform (id, platform_key, platform_desc).

Я ищу способ получения всех значений из настроек, и только те значения из переопределений, где platofrm_key = = 'some vlaue'

Итак, я разобрался в соединениях, но не уверен, что это лучший способ собрать все вместе.На данный момент я могу получить только значения из всех таблиц: platform_key = 'some value' Но это не то, что я ищу.Есть мысли?

Заранее спасибо.

1 Ответ

0 голосов
/ 31 января 2012

Один из способов сделать это - использовать оператор LEFT JOIN и CASE в SELECT.Например:

select
  id,
  desc,
  case so.value when NULL then s.value else so.value end case as setting_value
from settings s
left join settings_overrides so on so.settings_id = s.id and platform_key = 'some value'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...