私は以下のように4つのテーブルを持っています.HL_STUDENT、HL_SEM1_CRSおよびHL_SEM2_CRSテーブルは、STUDENTを主キーとして持ち、HL_TITLEにはSTUDENTフィールドがなく、コース番号(CRS_NBR)をキーとして使用します。テーブルから2つの異なるテーブルから2つの異なる値のフィールドを選択
HL_STUDENT A
HL_SEM1_CRS B
HL_SEM2_CRS C
HL_CRS_TITLE D
は私がSTUDENTを取得する必要があり、CRS1、CRS1-TITLE-DESC、CRS2、CRS2-TITLE-DESC示すようbelow.Iは、両方のコース1とコース2
のためのコースdescripionを必要としますSTUDENT CRS-1 CRS1-TITLE-DESC CRS-2 CRS2-TITLE-DESC
1 25 MATH 35 HISTORY
2 35 HISTORY 25 MATH
次のように、HL_CRS_TITLEテーブルを2回、異なるALIASに参加させて解決策を検討していました。
SELECT DISTINCT A.STUDENT
,B.CRS_1
,D.CRS_TITLE_DESC
,C.CRS_2
,E.CRS_TITLE_DESC
FROM HL_STUDENT A
LEFT JOIN HL_SEM1_CRS B ON A.STUDENT = B.STUDENT
LEFT JOIN HL_CRS_TITLE D ON D.CRS_NBR = B.CRS_1
LEFT JOIN HL_SEM2_CRS B ON A.STUDENT = B.STUDENT
LEFT JOIN HL_CRS_TITLE E ON E.CRS_NBR = B.CRS_2
ソリューションを入手するより良い方法をお勧めしますか?
私はORACLE DBに対してクエリを実行しています。
ありがとうございました。
こんにちは、問題はduplicates.Iではなく、必要とすることなく、学期の両方の記録のためのコースのタイトルを取得する必要がありますHL_CRS_TITLEを2回参加させる –
HL_CRS_TITLEに2回参加することなく、例を追加します。しかし、私はその解決策の利点を見ていません –
あなたの時間のためのマイケルありがとうございました。当分、私はHL_CRS_TITLEテーブルに2回参加する私の元のアプローチに行くと思います。 –