Sql 将5个查询合并为一个

Sql 将5个查询合并为一个,sql,oracle,Sql,Oracle,我分析了两份数据,发现了五种不同的数据链接方式。是否可以将这些合并到一个查询中?将这些查询组合在一起超出了我的技能范围,但是将这些查询转换成单个查询将对我所要完成的任务有很大帮助 以下是查询(实际的表名和列名已被替换) 查询结果应给出如下数据。对于Col1中的任何值,Col2中可能有多个值,然而,对于每个Col1/Col2配对,上面只有一组查询创建两个实体之间的链接 Col1 | Col2 ----------- 1 | A 2 | B 2 | C 3 | D

我分析了两份数据,发现了五种不同的数据链接方式。是否可以将这些合并到一个查询中?将这些查询组合在一起超出了我的技能范围,但是将这些查询转换成单个查询将对我所要完成的任务有很大帮助

以下是查询(实际的表名和列名已被替换)

查询结果应给出如下数据。对于Col1中的任何值,Col2中可能有多个值,然而,对于每个Col1/Col2配对,上面只有一组查询创建两个实体之间的链接

Col1 | Col2
-----------
  1  |  A
  2  |  B
  2  |  C
  3  |  D
  4  |  A
谢谢你的帮助。如果您对查询或结果有任何疑问,请告诉我

注意-这些查询是针对Oracle数据库执行的。

使用:

SELECT a.Col1, d.Col2 
FROM Table2 B
LEFT JOIN Table1 A ON A.Col1=B.Col3 
LEFT JOIN Table5 H ON H.Col14=B.Col4 AND Col7='Value1'
LEFT JOIN Table7 E ON (E.Col10=B.Col4 AND Col7='Value2') OR (F.Col10=b.Col4 AND Col7='Value3')
LEFT JOIN Table6 F ON (E.Col13=F.Col9) OR (E.Col8=F.Col9) OR (E.Col11=F.Col9) OR (H.Col8=F.Col9)
LEFT JOIN Table3 C ON (B.Col4=C.Col5) OR (F.Col9=C.Col5) OR (F.Col11=C.Col5)
LEFT JOIN Table4 D ON D.Col2=C.Col6;

或select语句的UNION运算符。

为什么从一个?你可以从表2开始,左键连接所有不完美的东西,但是你也可以在这里使用联合操作符case@Hogan同意,一个右连接只是一个左连接,写反了,让每个人都感到困惑。
SELECT a.Col1, d.Col2 
FROM Table2 B
LEFT JOIN Table1 A ON A.Col1=B.Col3 
LEFT JOIN Table5 H ON H.Col14=B.Col4 AND Col7='Value1'
LEFT JOIN Table7 E ON (E.Col10=B.Col4 AND Col7='Value2') OR (F.Col10=b.Col4 AND Col7='Value3')
LEFT JOIN Table6 F ON (E.Col13=F.Col9) OR (E.Col8=F.Col9) OR (E.Col11=F.Col9) OR (H.Col8=F.Col9)
LEFT JOIN Table3 C ON (B.Col4=C.Col5) OR (F.Col9=C.Col5) OR (F.Col11=C.Col5)
LEFT JOIN Table4 D ON D.Col2=C.Col6;