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

标签 mysql join doctrine

我正在使用一个配置系统,该系统将在 mysql 数据库中保存各种平台的一些参数。表格是这样的settings(id, desc, value), settings_overrides(id, settings_id, value, platform_id), platform (id, platform_key, platform_desc)。

我正在寻找的是一种从设置中获取所有值的方法,并且只有那些来自重写的值,其中 platofrm_key = to 'some vlaue'

所以我想出了连接,只是不确定将它们组合在一起的最佳方式。在这一点上,我能够得到的只是所有表中的值都是 platform_key='some value' 但这不是我想要的。有什么想法吗?

提前致谢。

最佳答案

其中一种方法是在 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'

关于Mysql,Doctrine 1.2 一个复杂的 Join 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082421/

相关文章:

mysql - 如何为特定行的 UPDATE 同步 TRIGGER 执行?

交响乐 4 : Add constraint new UniqueEntity() to x if y is null

mysql - 是否可以通过单个查询从不同数据库检索数据?

php - php xampp访问被拒绝错误

mysql - LEFT JOIN 显示重复匹配项

mysql - 教义 : How to join on a specific row?

php - 有没有办法使用 doctrine2 强制执行唯一列?

php - 如何在 Doctrine 2 中获取类而不是数组

mysql - 添加 JOIN 到此 mysql 查询

MySQL匹配两个表中的sku,并返回特定行