2012-01-17 9 views
0

JOIN条件を忘れました。私はそれを検索すべきです。しかし、オラクルは、彼がデカルト積で結合したいテーブルがどれであるかを知っています。Merge join cartesian:WHERE Join条件が不足していますか?

テーブルの名前を表示する方法はありますか?

+0

、私はJOINのステップに関与列名を表示する手立てを知りません。クエリの投稿と明示的なJOIN構文の使用はどうですか? – Benoit

+1

ところで、最終結果にデカルト結合が含まれていなくても、クエリープランでデカルト結合を得ることができます。私がそれを見たたびに、テーブルの統計は悪く、計画は迷惑だった。 –

答えて

1

FROMリスト内のテーブルがある場合:

(a JOIN b JOIN c JOIN ... JOIN k) , (m JOIN n JOIN ... JOIN z) 

どのようにOracleは、条件が欠落している参加かを知ることができますか?

それは次のように、ON a.someid = m.someidまたはON a.someid = n.someidか...またはON k.someid = z.someidまたはさらに複雑いずれかになります。クエリプランで

ON a.someid = z.someid 
AND k.otherid = z.otherid 
+0

しかし、彼は私に言うことができる:私はこの2つの情報の間にデカルト製品を作るつもりです:テーブルAはテーブルBとテーブルCと結合しました。 それは私を大きく助けるでしょう – Revious

+1

** [ (http://en.wikipedia.org/wiki/Oracle_Database)** ** ** [Oracle](http://en.wikipedia.org/wiki/Oracle)** –

+0

私の投稿にタグを付けることを意味しますか? – Revious