小编Rob*_*III的帖子

回退查看(性能/优化问题)

我有一张表,上面有东西的关税;在这种情况下,关税表并不重要,“关税值”很重要。在此演示 SQL Fiddle 中tariff_plantariffplans表的 FK (未包含在示例中)。每个“东西”的关税是tariff_type(出于演示目的简化为一个简单的字符)。

例如,我有一个默认的关税计划(key = default);这是适用于每个客户的资费,除非为该客户定义了另一个值tariff_type。为客户分配了关税计划(plan_x在我的示例中为键 = )。

如果有定义项目的关税abc并且d在默认的计划。在 plan_x 中,我为a和定义了“覆盖”值c

所以,我做的是我选择default计划(化名p低于p rimary)和左加入“覆盖”计划(plan_x)把它(别名s下面小号econdary):

select *
from tariff_values as p
left outer join tariff_values s 
    on (p.tariff_type = s.tariff_type) and (s.tariff_plan = 'plan_x')
where (p.tariff_plan = 'default')
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,这导致:

id   tariff_plan …
Run Code Online (Sandbox Code Playgroud)

performance sql-server optimization

5
推荐指数
1
解决办法
492
查看次数

标签 统计

optimization ×1

performance ×1

sql-server ×1