2 つのテーブルから選択するデータベース ビューを作成しようとしています。次に例を示します。
USER_TABLE
- ID
- USER_NAME
FAMILY_TABLE
- ID
- FAMILY_NAME
- FATHER_USER_NAME
- MOTHER_USER_NAME
- GRANDFATHER_1_USER_NAME
... (multiple user name columns)
(テーブル ライターは、何らかの理由で ID を介して関連付けられませんでした)
基本的に、各ユーザーとそのユーザーが属する家族の名前を一覧表示するビューを作成する必要があります。いろいろ試してみましたが、どれも失敗のようです。
SELECT
最初にからステートメントを結合しようとしましたFAMILY_TABLE
が、それには時間がかかりました (以前の投稿を参照してください)。
次に、「または結合」を試みました。
SELECT ut.USER_NAME, ft.FAMILY_NAME
FROM USER_TABLE ut
LEFT OUTER JOIN FAMILY_TABLE ft ON
(
UPPER(ut.USER_NAME) = UPPER(ft.FATHER_USER_NAME)
OR
UPPER(ut.USER_NAME) = UPPER(ft.MOTHER_USER_NAME)
... (etc)
)
ただし、これには長い時間がかかります (FATHER_USER_NAME と MOTHER_USER_NAME だけで 22 秒かかりました)。
必要なビューのクエリを作成する最も効率的な方法を誰かが提案できますか? 早くする方法がわかりません。
参考までに: Oracle 10g を使用しています。