次の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 の作業が変わるとは思えません (オプティマイザ ヒントを使用しないと仮定)。そのため、波線が嫌いな場合にのみ変更することをお勧めします。