SELECT
現在、を使用して 3 つのテーブルからステートメントを作成しようとしていJOIN
ます。しかし、selectステートメントで3つのテーブルから必要な値を出力できないようです
これは私のテーブルを構成するものの例です:
申請者テーブル
APPNUM APPNAME
A0001 デリック・タン
A0002 ユージーン・ロー
A0003 サミュエル・リム
A0004 アン・チャン
A0005 ジョーダン・ウィー
A0006 リンダ・コー
A0007 ヴェロニカ・リム
A0008 ジュナイダ・バテ・イスマイル
A0009 ジーン・タン
A0010 ルペシュ
・サブラマニアム A0011 ムハンマド・ファリドスキル保有表
SKILLPOSAP SKILLPOSSKILL
A0001 SK001
A0001 SK003 A0001 SK005 A0001 SK006
A0001 SK201
A0001
SK301
A0002
SK107
A0002 SK108
A0002 SK202スキルが必要なテーブル
SKILLNEEDE SKILLNEEDEDSKILL
P0001 SK001
P0001 SK005
P0001 SK006
P0001 SK201
P0001 SK301
ご覧のとおり、Skillneeded の skillneededposnum 値に基づいて、Applicant から appnum と appname の値を取得する必要があります。つまり、Skillneeded から Skillpossessed から Applicant へのリンクです。を使用しJOIN
て appnum n 個の appnames を取得できますが、値が重複しています!
これは Select ステートメントです。
SELECT APPNUM,APPNAME
FROM APPLICANT A
LEFT JOIN SKILLPOSSESSED B
ON A.APPNUM = B.SKILLPOSAPPNUM
LEFT JOIN SKILLNEEDED C
ON B.SKILLPOSSKILL = C.SKILLNEEDEDSKILL
WHERE C.SKILLNEEDEDPOSNUM = 'P0001';
これは結果の例です:
APPNUM APPNAME
A0001 デリック・タン
A0001 デリック・タン
A0001 デリック・タン
A0001 デリック・タン
A0001 デリック・タン
A0003 サミュエル・リム
A0003 サミュエル・リム
A0003 サミュエル・リム
A0004 アン・チャン
A0004 アン・チャン
A0005 ジョーダン・ウィー
表示される結果は、 の SINGLE ROW のみである必要がありA0001 Derrick Tan
ます。
編集: プロセスは、skillneeded から skillprocessed から申請者までです。「P0001」は、skillneeded テーブルから 5 つの「SK---」データを取得します。そこから、5 つの 'SK---' データは、skillprocessed テーブルから 'A0001' を取得します。最後に「A0001」は、申請者テーブルから名前を取得します。
これを実現するには、既存の sql ステートメントをどのように変更すればよいですか? または、を使用する以外にこれを行うためのより良い方法はありJOIN
ますか?
すべての助けに感謝します!