【发布时间】:2015-04-30 01:22:54
【问题描述】:
我有以下示例查询
select a.name,c.company
from employee a, company c
where a.comp_id = c.comp_id
and a.active='Y'
现在我有两个新表
company_profile,(每家公司的资料值。每家公司可能有也可能没有此表中的数据)
profile_defaults(包含独立于公司的每个配置文件项的默认配置文件值)
现在我需要参考特定公司的 company_profile 中的“show_data”列。如果该公司没有行,那么我需要从 profile_defaults 表中获取值。我如何以最好的方式将这个逻辑集成到我上面提到的第一个查询中。
表格
员工
|名称|Comp_id|活动|
公司
|Comp_id|名称|
公司简介
|comp_profile_id|profile_id|comp_id|profile_name|profile_value|
Profile_Defaults
|profile_id|profile_name|profile_value|
还有很多其他的表被使用。但我现在只为这个案例缩短了四张桌子。
【问题讨论】:
-
LEFT JOIN两个新表并使用COALESCE()(或NVL()),如果您更喜欢 Oracle 特定的)。