SQL Developer「結合グラフの残りの部分から切断されました」質問する

SQL Developer「結合グラフの残りの部分から切断されました」質問する

次のSQLがあります:

select <misc things>
from pluspbillline 
left outer join workorder 
    on workorder.siteid=pluspbillline.siteid 
    and workorder.wonum = pluspbillline.refwo
    and workorder.orgid = pluspbillline.orgid
left outer join ticket
    on ticket.ticketid = pluspbillline.ticketid
    and ticket.class=pluspbillline.ticketclass
left outer join pluspsalesorder
    on pluspsalesorder.salesordernum=pluspbillline.salesordernum
    and pluspsalesorder.siteid=pluspbillline.siteid

Oracle SQL Developer 4.0.0.13(DB2データベースに接続)では、次のイタリック体の下に波線が表示されます。「プラスpbillline「左外部結合」と「左外部結合」作業命令「」。

警告には、「pluspbillline は結合グラフの残りの部分から切断されています」と書かれています。これはどういう意味ですか?

ベストアンサー1

私も同じです。どのように表現したらよいかよくわかりませんが、エラーはコードの論理的な流れに基づいているようです。

pluspbillline基本的に、前にテーブルについて言及しているので、workorder結合on pluspbillline.siteid=workorder.siteidなどが期待されると思います。

結合条件の順序は、最初に識別されたテーブルから最新のテーブルへと流れる必要があるようです。したがって、次のようになります。

plusbillline to workorder       on pluspbillline.siteid=workorder.siteid...
    ""       to ticket          on pluspbillline.ticketid = ticket.ticketid...
    ""       to pluspsalesorder on pluspbillline.salesordernum = pluspsalesorder.salesordernum...

これによって Oracle の作業が変わるとは思えません (オプティマイザ ヒントを使用しないと仮定)。そのため、波線が嫌いな場合にのみ変更することをお勧めします。

おすすめ記事