如何在Oracle的SQL查询中使用子查询返回的表

如何在Oracle的SQL查询中使用子查询返回的表,sql,database,oracle,oracle11g,Sql,Database,Oracle,Oracle11g,我需要一张像这样的桌子 +--------+----------+-----------------+--------------------+-------------------+ |offer_id|Offer_name|Total_offers_sold|total_device_changed|total_offer_changed| +--------+----------+-----------------+--------------------+----------------

我需要一张像这样的桌子

+--------+----------+-----------------+--------------------+-------------------+
|offer_id|Offer_name|Total_offers_sold|total_device_changed|total_offer_changed|
+--------+----------+-----------------+--------------------+-------------------+
现在,对于前三列,我已经使用联接找到了数据,然后根据提供ID进行分组

+--------+----------+-----------------+
|offer_id|Offer_name|Total_offers_sold|
+--------+----------+-----------------+
|12      |abc       |23               |
+--------+----------+-----------------+
|23      |gdf       |3                |
+--------+----------+-----------------+
|54      |df        |54               |
+--------+----------+-----------------+
|56      |gf        |4                |
+--------+----------+-----------------+
|65      |ad        |17               |
+--------+----------+-----------------+
|75      |hg        |54               |
+--------+----------+-----------------+
对于其他两列,即offer_changed和total_device_changed,它们本身就是查找所需数据的复杂查询。假设我通过对这两个集群执行查询找到了这个示例数据

+--------+-------------------+
|offer_id|total_offer_changed|
+--------+-------------------+
|12      |3                  |
+--------+-------------------+
|56      |65                 |
+--------+-------------------+
|65      |4                  |
+--------+-------------------+
同样地

+--------+--------------------+
|offer_id|total_device_changed|
+--------+--------------------+
|12      |2                   |
+--------+--------------------+
|23      |5                   |
+--------+--------------------+
|75      |20                  |
+--------+--------------------+
现在的问题是,这些是临时结果,我无法理解如何将此输出(表)的结果合并到与其报价ID相对应的更大查询中。即,我需要的最终结果是:

+--------+----------+-----------------+--------------------+-------------------+
|offer_id|Offer_name|Total_offers_sold|total_device_changed|total_offer_changed|
+--------+----------+-----------------+--------------------+-------------------+
|12      |abc       |23               |2                   |3                  |
+--------+----------+-----------------+--------------------+-------------------+
|23      |gdf       |3                |5                   |                   |
+--------+----------+-----------------+--------------------+-------------------+
|54      |df        |54               |                    |                   |
+--------+----------+-----------------+--------------------+-------------------+
|56      |gf        |4                |                    |65                 |
+--------+----------+-----------------+--------------------+-------------------+
|65      |ad        |17               |                    |04                 |
+--------+----------+-----------------+--------------------+-------------------+
|75      |hg        |54               |20                  |                   |
+--------+----------+-----------------+--------------------+-------------------+

请帮助

您要查找的是内联视图。内联视图是
from
子句中的子查询。与
select
where
子句中的子查询不同,您不能引用
from
子句中的其他表,但可以将内联查询的结果与主查询中的表关联起来

在您的情况下,它将是:

select offer_id, offer_name, total_offers_sold
  from table_name t1
       inner join (select offer_id, total_offer_changed
                     from table_name
                    where whatever...
                   ) t2
            on t1.offer_id = t2.offer_id
 where whatever_the_other_conditions
;
但是,在现实世界中,我只是想做一些类似的事情

select offer_id, offer_name, total_offers_sold, total_offer_changed
  from table_name
 where whatever_the_conditions
;
阅读和上的内联视图的更多信息。

尝试以下查询:

SELECT
t1.OFFER_ID,t1.OFFER_NAME,t1.TOTAL_OFFERS_SOLD,
t3.TOTAL_DEVICE_CHANGED,t2.TOTAL_OFFER_CHANGED 
FROM
TABLE1 t1
LEFT OUTER JOIN TABLE2 t2 ON t1.OFFER_ID = t2.OFFER_ID
LEFT OUTER JOIN TABLE3 t3 ON t1.OFFER_ID = t3.OFFER_ID 
ORDER BY t1.OFFER_ID;

是否要将最终表作为查询中的输出?是!我想要最后一个表作为查询