2つのテーブル - EmployeeとJob_History と 両方のテーブルには、EMPLOYEE_ID、JOB_ID、DEPARTMENT_IDの3つの共通列があります。 EMPLOYEE_IDおよびJOB_ID - 今2つの共通の列を持つ2つのテーブルに結合する
、私がすべてではありません3つの共通の列をもとにだけ2共通の列に基づいてをJOINを使用してテーブルの両方に参加したいと思います。
どうすれば結果を得ることができますか?
2つのテーブル - EmployeeとJob_History と 両方のテーブルには、EMPLOYEE_ID、JOB_ID、DEPARTMENT_IDの3つの共通列があります。 EMPLOYEE_IDおよびJOB_ID - 今2つの共通の列を持つ2つのテーブルに結合する
、私がすべてではありません3つの共通の列をもとにだけ2共通の列に基づいてをJOINを使用してテーブルの両方に参加したいと思います。
どうすれば結果を得ることができますか?
あなたはな数の列にJOIN
はあなたが好きなことができますように、この
select E.* ,J.*
from Employee as E
inner join Job_History as J
on (E.EMPLOYEE_ID=J.EMPLOYEE_ID
and E.JOB_ID=J.JOB_ID)
これは有効なメソッドですが、 'ON'節を使用する必要はありません。 – McGlothlin
@McGlothlin。 。 。これは、クエリを記述する正しい方法です。あなたのコメントが何を指しているのか分かりませんが、 'ON'節に' JOIN'条件を入れるのは正しいです。 –
ああ、OPの質問に対するコメントで、彼は「ON」句が必要だと言った。私は* required *を意味するようにそれを取った。私はそれには別の方法があると言っているだけです。 – McGlothlin
ようJOIN
on
句でmultiple
条件を渡すことができます。 JOIN
条件は、データベースからテーブルのデータをマージする方法を指示します。
SELECT EMPLOYEE_ID
FROM EMPLOYEES
JOIN JOB_HISTORY USING (EMPLOYEE_ID, JOB_ID)
DEPARTMENT_ID
の値もEMPLOYEE_ID
とJOB_ID
は等価で両方のテーブルに一致した場合、結果セットには関係なく、あなたもDEPARTMENT_ID
を含めるかどうかの同じになります。
私は各テーブルに次の列を持っている場合:
Table A
EMPLOYEE_ID DEPARTMENT_ID JOB_ID Other_Column1 Other_Column2
1 1 1 stuff things
2 2 2 stuff things
3 3 3 stuff things
Table B
EMPLOYEE_ID DEPARTMENT_ID JOB_ID Other_Column3 Other_Column4
1 1 1 stuff things
2 2 2 stuff things
3 3 3 stuff things
その後、インクルードを使用すると、DEPARTMENT_ID
かを含めるかどうかを同等になり合流。 DEPARTMENT_ID
、テーブルAとテーブルBに2, 3, 4
に1, 2, 3
た場合は:
Table A
EMPLOYEE_ID DEPARTMENT_ID JOB_ID Other_Column1 Other_Column2
1 1 1 stuff things
2 2 2 stuff things
3 3 3 stuff things
Table B
EMPLOYEE_ID DEPARTMENT_ID JOB_ID Other_Column3 Other_Column4
1 2 1 stuff things
2 3 2 stuff things
3 4 3 stuff things
所与の行の3つの列、EMPLOYEE_ID
、DEPARTMENT_ID
、及びJOB_ID
全て一致なしの場合が存在しないため、結果セットは結果を返さないことになります。
これまでに試したことはありますか? – JYoThI
1列に基づいて2つのテーブルを結合しました。
EMPLOYEESからEMPLOYEE_IDを選択JOIN JOB_HISTORY USING(EMPLOYEE_ID);
すべての3列に基づいて2つのテーブルを結合しました。
SELECT EMPLOYEE_ID、JOB_ID、DEPARTMENT_ID from EMPLOYEES NATURAL JOIN JOB_HISTORY;
しかし、希望の出力を得るためにどのJOINを使うべきか分かりません。 –
あなたはOn句を使用する必要があります。私の下の答えを参照してください – JYoThI