我有四个表sa,at,ar,lv,
Sa table编组
|Name|
|s1|
|s2|
|s3|
在表格
|Name|
|t1|
|t2|
|t3|
ar table
|Name|
|r1|
|r2|
|r3|
lv table consust
|Name|
|l1|
|l2|
|l3|
现在我有2张桌子pf,pfs
pf表包含
|sa| at| ar| lv
|s1| t1| r1| l1|
现在,如果pf表有任何价值'全部'然后它会将其他表格数据的所有组合更新为pfs
喜欢sa有' All'
|sa| at| ar| lv|
|All| t1| r1| l1
然后pfs表应该有
|sa| at |ar| lv|
|s1| t1| r1| l1|
|s2| t1 | r1| l1|
|s3| t1| r1| l1|
这样,如果pf包含sa = 'All'
和at = 'All'
,那么s1,s2,s3
和t1,t2,t3
的所有组合都会变成pfs
你能告诉我怎样才能更优雅地做到这一点?
我知道我需要在pf上写一个触发器。
任何肝脏都会非常明显。
答案 0 :(得分:1)
查询:
select
coalesce(sa.name, sa) as sa,
coalesce(at.name, at) as at,
coalesce(ar.name, ar) as ar,
coalesce(lv.name, lv) as lv
from pf
left join sa on pf.sa = 'All'
left join at on pf.at = 'All'
left join ar on pf.ar = 'All'
left join lv on pf.lv = 'All';
返回预期的组合。根据您的需要,在触发器中或作为独立查询使用它。