你需要儘可能多的union all...select
部分根據需要添加:
select
order_number,
'table1' as `table`,
data,
prameter_name
from
table1 t1p3
where
step_name in ('step1', 'step2', 'step3', 'step4', 'step5', 'step6', 'step7', 'step8') and
parameter = 'p3' and
exists (
select
'x'
from
table1 t1p1
where
t1p1.order_number = t1p3.order_number and
t1p1.step_name = t1p3.step_name and
t1p1.parameter = 'p1' and
t1p1.data = 'const1'
) and exists (
select
'x'
from
table1 t1p2
where
t1p2.order_number = t1p3.order_number and
t1p2.step_name = t1p3.step_name and
t1p2.parameter = 'p2' and
t1p2.data = 'const2'
)
union all
select
order_number,
'table2',
data,
prameter_name
from
table2 t2p3
where
step_name in ('step1', 'step2', 'step3', 'step4', 'step5', 'step6', 'step7', 'step8') and
parameter = 'p3' and
exists (
select
'x'
from
table2 t2p1
where
t2p1.order_number = t2p3.order_number and
t2p1.step_name = t2p3.step_name and
t2p1.parameter = 'p1' and
t2p1.data = 'const1'
) and exists (
select
'x'
from
table2 t2p2
where
t2p2.order_number = t2p3.order_number and
t2p2.step_name = t2p3.step_name and
t2p2.parameter = 'p2' and
t2p2.data = 'const2'
)
你是什麼意思與「多層過濾器」? – Horaciux 2014-08-27 22:25:16