Sql 如何组合多个选择以从多个表中获取数据

Sql 如何组合多个选择以从多个表中获取数据,sql,oracle,Sql,Oracle,我有这样一种情况,我应该从不同的表中选择数据,使用如下的on查询,它是使用每一步逐行完成的。像tab1和tab2这样的表是有关系的,但是有人能举例说明如何在一个SQL SELECT子句中查询这些值吗?谢谢 -- First query to get field value to next select<br> SELECT tab1.*, tab2.* FROM tab1, tab2 WHERE field1 = 'Key1'; <br> SELECT * from t

我有这样一种情况,我应该从不同的表中选择数据,使用如下的on查询,它是使用每一步逐行完成的。像tab1和tab2这样的表是有关系的,但是有人能举例说明如何在一个SQL SELECT子句中查询这些值吗?谢谢

-- First query to get field value to next select<br>
SELECT tab1.*, tab2.*  FROM tab1, tab2 WHERE field1 = 'Key1'; <br>
SELECT * from tab2 WHERE field2 = 'Key2'; -- returned from row 1 e.g. tab1.field<br>
select * FROM tab3 where field3 = 'Key3'; -- returned from row 2 e.g. tab2.field<br>
SELECT * FROM tab4 WHERE field4 in ('Key4','Key5','Key7'); <br>
-- returned from row 3 e.g tab3 with three fields<br>

如果您想以一个tableview的形式获得结果,请尝试这样使用, 或者,您应该在相关列上使用innerjoin

 SELECT *
  FROM tab1 
  WHERE tab1=key1
 UNION  
 SELECT * 
  FROM tab2 
  WHERE tab2=key2
 UNION  
 SELECT * 
  FROM tab3 
  WHERE tab3=key3
 UNION  
 SELECT * 
  FROM tab4 
     WHERE tab4 in ('Key4','Key5','Key7');

示例数据和所需结果将非常有用。可能的重复您的意思是每个查询依赖于上一个查询吗?查询1返回叉积。这真的是你想要的吗?