Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与其他sql的输出进行连接_Sql_Oracle - Fatal编程技术网

与其他sql的输出进行连接

与其他sql的输出进行连接,sql,oracle,Sql,Oracle,我有两个表,如下T1和T2 现在我想做以下事情:对于T1.A的每个值,我想加入T2.B 比如: select * from T1 ,(select * from where T2 where T2.B = T1.A) 这是正确的吗?当我尝试这样做时,我得到一个错误,说T1.A是无效的标识符 我知道我可以从T1,T2中选择,其中T1.A=T2.B 但是我的用例非常复杂。查询select*from where T2 where T2.B=T1.A非常复杂 那我该怎么做呢?除非我弄错了,否则你就不能

我有两个表,如下T1和T2

现在我想做以下事情:对于T1.A的每个值,我想加入T2.B

比如:

select * from T1 ,(select * from where T2 where T2.B = T1.A)
这是正确的吗?当我尝试这样做时,我得到一个错误,说T1.A是无效的标识符

我知道我可以从T1,T2中选择,其中T1.A=T2.B

但是我的用例非常复杂。查询select*from where T2 where T2.B=T1.A非常复杂


那我该怎么做呢?

除非我弄错了,否则你就不能用JOIN:

祝你好运。

你只需要加入表格:

select * 
from T1 
inner join T2 
  on T2.B = T1.A
如果您需要学习连接语法的帮助,这里有一个很好的方法

我使用了一个内部连接,它将返回T1和T2之间匹配的行。您可能需要使用左联接,它将返回T1中的所有行,即使T2中没有匹配的行

如果有其他查询可供选择,则可以使用子查询:

select * 
from T1 
inner join
( 
   -- place your query here
   select *
   from T2
) T2 
  on T2.B = T1.A
如果子查询仅返回一列,则可以使用:

select t1.*, (select t2.col1 from T2 t2 where t2.B = t1.A) 
from T1 t1
你能行

select * 
from T1 
inner join T2 
  on T2.B = T1.A
正如其他人所说。 但是,此版本仅为可读性而首选

你也可以继续使用

select * from T1,T2 where T1.A = T2.B
优化器会找到答案,然后做完全相同的事情, 因为查询是等价的


你可以继续使用它,因为它没有问题。

选择A,T1.B,选择*从哪里T2,其中T2.B=T1.A从T1。这会有帮助吗?

我知道,我在我的原始帖子中已经提到了。但是第二个表不是一个表,它是一些复杂查询的输出。请阅读post的结尾部分,但是它本身需要T1.a来在其中使用。你能发布你的实际查询吗?对不起,不,根据我公司的政策:你能帮我回答rohit建议的答案吗?我有错误,我有错误,说T1.A是无效的标识符。在尝试选择T1.A、T1.B时,从Tab2中选择COL3作为T2,其中,Tab1中的T2.COL3=T1.A T1在MS-SQL 2008Oops中对我有效。我不知道你在用甲骨文
select * from first_table inner join second_table on first_table.X = second_table.Y
select * from T1,T2 where T1.A = T2.B
select * from first_table inner join second_table on first_table.X = second_table.Y