passieren Sie können JOIN
auf so viele oder so wenige Spalten, wie Sie möchten. Die JOIN
Bedingungen teilt der Datenbank mit, wie die Daten aus den Tabellen zusammengeführt werden.
SELECT EMPLOYEE_ID
FROM EMPLOYEES
JOIN JOB_HISTORY USING (EMPLOYEE_ID, JOB_ID)
Wenn die Werte in DEPARTMENT_ID
auch in beiden Tabellen zusammenpassen, wo EMPLOYEE_ID
und JOB_ID
äquivalent sind, wird die Ergebnismenge das gleiche sein, unabhängig davon, ob Sie auch DEPARTMENT_ID
enthalten.
Wenn ich die folgenden Spalten in jeder Tabelle haben:
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
dann schließt sich das Äquivalent wäre, ob Sie DEPARTMENT_ID
oder nicht enthalten. Allerdings, wenn DEPARTMENT_ID
waren 1, 2, 3
in Tabelle A und 2, 3, 4
in Tabelle B:
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
die Ergebnismenge würde keine Ergebnisse zurückgeben, weil es keine Fälle, in denen die drei Säulen, EMPLOYEE_ID
, DEPARTMENT_ID
und JOB_ID
alle Spiele für eine bestimmte Zeile .
was Sie bisher versucht haben. zeigen Sie Ihre Abfrage – JYoThI
Joined zwei Tabellen auf der Grundlage von 1 Spalte:
SELECT EMPLOYEE_ID VON MITARBEITER JOIN JOB_HISTORY VERWENDEN (EMPLOYEE_ID);
Verknüpft zwei Tabellen auf der Grundlage aller 3 Spalte:
SELECT EMPLOYEE_ID, JOB_ID, DEPARTMENT_ID VON MITARBEITERN NATURAL JOIN JOB_HISTORY;
Aber ich weiß nicht, welchen JOIN ich verwenden sollte, damit ich die gewünschte Ausgabe bekommen kann. –
müssen Sie On-Klausel verwenden. siehe meine Antwort unter – JYoThI