繁体   English   中英

从Oracle SQL中的3个表中获取数据

[英]Fetch data from 3 tables in Oracle SQL

我需要从3个具有name="some string"表中获取所有行。

  • table1包含一些name="testing123"
  • table2有一些name="testing456"
  • table3有一些name="testing789"

因此,我的查询应返回与name="testing%"相匹配的3行。

我尝试了inner join ,但不返回任何内容:

SELECT * FROM table1
INNER JOIN table2
    ON table1.name$ = table2.name$
INNER JOIN table3
    ON table1.name$ = table3.name$
    WHERE obj_cd3a93e8.name$ LIKE 'testing%';

如果我理解正确,则可能要改用工会:

select column
from table1
where $name like 'some string'
Union
select column
from table2
where $name like 'some string'
Union 
select column
from table3
where $name like 'some string'

如果表的结构相同,则使用@Sebastien提到的并集。

否则,如果希望选择三个表的所有列,并且所有三个表中没有公共列。 使用凯撒积:

select 
* 
from table1 t1 ,
     table2 t2,
     table3 t3
where t1.name = 'testing123'
and t2.name = 'testing456'
and t3.name = 'testing789';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM