[英]sql query applying multiple filters to multiple tables
I am inexperienced in SQL, need a query applying multi-layer filters to multiple tables for comparison purposes. 我对SQL没有经验,需要一个查询将多层过滤器应用于多个表以进行比较。
Table1: 表格1:
Order_Number Step_Name Data Parameter_Name 订单编号步骤名称数据参数名称
12 step4 const1 P1 12 step4 const1 P1
12 step4 const2 P2 12 step4 const2 P2
12 step4 value1 P3 12 step4 value1 P3
30 step6 const3 P1 30步骤6 const3 P1
30 step6 const4 P2 30步骤6 const4 P2
30 step6 value2 P3 30 step6 value2 P3
All tables have same format, only different in data values. 所有表都具有相同的格式,只是数据值不同。 Order numbers might be different from table to table.
表格之间的订单号可能会有所不同。
I want to do: 我想要做:
Order_Number Table Data Parameter_Name 订单编号表数据参数名称
12 table1 value1 P3 12表1值1 P3
12 table2 value2 P3 12表2值2 P3
14 table3 value3 P3 14表3值3 P3
Your help is greatly appreciated! 非常感谢您的帮助!
You'll need to add as many union all...select
parts as necessary: 您需要添加
union all...select
根据需要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'
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.