これは宿題に関する質問ですが、私はこれ以上の難しさがありますが、私は実際にはもっと複雑なステートメントのいくつかの周りを頭で囲むことはできません。私は譲渡を完全にあきらめる前に、助けていただければ幸いです。教授とTAはどんな助けも断った。JOINまたは条件付きロジック4つ以上のテーブル
私はすべてのOracle DBのデモとして存在する「HR」テーブルを使用しています。 私は、特定の部署のすべてのジョブとロケーションを一意にリストアップする必要があります。下記のフォーム領域、場所、部署、ジョブ、および従業員:
場所:
Name Null? Type
----------------------------------------- -------- ----------------------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
ジョブズ:
Name Null? Type
----------------------------------------- -------- ----------------------------
JOB_ID NOT NULL VARCHAR2(10)
JOB_TITLE NOT NULL VARCHAR2(35)
MIN_SALARY NUMBER(6)
MAX_SALARY NUMBER(6)
従業員数:
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
これは、テーブルを持っています
部門:
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
私は関係代数は、種類のどのようになるを通じて考えることができますが、私はそれがSQL構文に行くだろうか見当もつかない当然のようにします。もちろん、より単純な結合を行う方法はわかっていますが、すべての要件を1つのステートメントに集約する方法を理解していません。私はその後、DEPARTMENTS.DEPARTMENT_IDからLOCATION_IDを導出し、最終的に私の元JOB_TITLE選択LOCATION.LOCATION_ID = DEPARTMENTS.DEPARTMENT_IDに場所に参加する、= 80 DEPARTMENT_IDが、その後のマッチングJOB_TITLEを取得するためのジョブに参加しないすべてのUNIQUEまたはDISTINCT JOB_IDsを取得したいです。だから、どうなっているのだろう? 1つの選択肢ですべての情報を取得するには3つの結合を行う必要がありますか?
SQL初心者の昔ながらの結合を教えてください... –
おそらく優先順位の逆転ですか?適切な標準の明示的な結合が優先されますか? –