通过使用第三个表连接两个表来创建表

时间:2011-08-19 17:56:05

标签: sql oracle join left-join

我有三张桌子:


表1(7.7百万条记录)

ID_1|..|..| OTHER FIELDS|


表2(820万条记录)

ID_2 |..|..|.....


表12(750万条记录)

ID_1| ID_2 | SOMEFIELDS| AND ID_1== ID_2.i.e.包含所有常见的ids

table 12包含idstable 1共有的唯一2。 我正在尝试通过将t1中的哪些记录与t2进行匹配来创建一个新表来获取t12id_1,id_2中的所有数据。

以下是我使用的SQL:

CREATE TABLE ARROW_all_common12 AS 
SELECT T1.*, T2.* FROM T1, T2
LEFT JOIN T12 
ON T12.ID_1=T1.ID_1
LEFT JOIN T12
ON T12.ID_2 = T2.ID_2
WHERE T12.ID2 = T2.ID_2

2 个答案:

答案 0 :(得分:2)

我不完全确定你在这里问的是什么,但也许一个观点可能是你在寻找什么?

CREATE VIEW someview AS (
    SELECT t1.*, t2.*
    FROM table12 AS t12
    INNER JOIN table1 AS t1
        ON t1.id_1 = t12.id1
    INNER JOIN table2 AS t2
        ON t12.id_2 = t2.id_2
)

答案 1 :(得分:0)

同样,它还不是很清楚。也许呢?

create table t_all_12 as (
      select t1.*, t2.* 
      from t1, t2, t12
      where t12.id_1 = t1.id_1
      and t12.id_2 = t1.id_2
)