Oracle SQL Left Join使用多个表

时间:2014-03-07 00:29:56

标签: sql oracle

说实话,我不知道如何布置这个问题,但我尽了最大努力。

我正在尝试加入多个表格。 TableA与TableE和TableF没有关系。

观察我试图用**突出显示的查询区域 当谈到TableE时,我加入了TableF,这是下面的内容。如何重写这个?

SELECT
            a.NAME,b.ID,c.CODE
FROM        SCHEMA.TABLEA A
            INNER JOIN SCHEMA.TABLEB b
                ON A.A_ID = B.B_ID
           INNER JOIN SCHEMA.TABLEC  C
                ON A.A_ID = C.C_ID
           LEFT JOIN SCHEMA.TABLED D
                ON A.A_ID =  D.D_ID
           **LEFT JOIN SCHEMA.TABLEE E
                ON D.D_ID = F.F_ID
           LEFT JOIN SCHEMA.TABLEF F
                ON E.E_ID = F.F_ID**

1 个答案:

答案 0 :(得分:2)

由于您声明表f与表d相关且表e与表f相关,我认为您只需要更改连接顺序,如下所示

SELECT
        a.NAME,b.ID,c.CODE
FROM        SCHEMA.TABLEA A
       INNER JOIN SCHEMA.TABLEB b
            ON A.A_ID = B.B_ID
       INNER JOIN SCHEMA.TABLEC  C
            ON A.A_ID = C.C_ID
       LEFT JOIN SCHEMA.TABLED D
            ON A.A_ID =  D.D_ID
       LEFT JOIN SCHEMA.TABLEF F
            ON D.D_ID = F.F_ID
       LEFT JOIN SCHEMA.TABLEE E
            ON E.E_ID = F.F_ID