join句で括弧を使用することは正当な構文です。 FROM
で 、および括弧 do 効果があります。
このクエリについて考えてみましょう:
WITH table_a AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 30),
table_b as ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 20),
table_c AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 10)
SELECT a.id, b.id, c.id
FROM table_a a left join ( table_b b inner join table_c c ON c.id = b.id ) ON b.id = a.id
ORDER BY 1,2,3;
括弧を使用すると、テーブルの内部結合を実行できますb
およびc
次に、それをa
に外部結合します 。
括弧がないと、それを左結合として表現しようとすることは不可能です。テーブルa
から行11〜30を取得することもできません。 または、テーブルc
の行11〜20 null
になります s(どのように実行しようとしたかによって異なります)。
上記のクエリは次と同等であることに注意してください:
WITH table_a AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 30),
table_b as ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 20),
table_c AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 10)
SELECT a.id, b.id, c.id
FROM table_b b inner join table_c c on c.id = b.id right join table_a a on a.id = b.id
ORDER BY 1,2,3;
、括弧は必要ありません。したがって、FROM
で括弧を使用することを本当に避けたい場合 条項、あなたは通常そうすることができます。個人的には、LEFT JOIN
が好きです RIGHT JOIN
の代わりに括弧を使用したメソッド 。