Mysql,Doctrine 1.2是一个复杂的Join查询

时间:2012-01-31 15:45:29

标签: mysql join doctrine

我正在使用一个配置系统,它将为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 ='某个值'但这不是我想要的。有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

其中一种方法是在SELECT中使用LEFT JOIN和CASE语句。例如:

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'