Der SQL JOIN kombiniert eine oder mehrere Tabellen basierend auf ihrer Beziehung. Der SQL JOIN beinhaltet eine Beziehung zwischen einer übergeordneten Tabelle und einer untergeordneten Tabelle.
Es gibt verschiedene Arten von SQL JOINS:
- Innere Verknüpfung
- Linker äußerer Join
- Right Outer Join
- Vollständiger äußerer Join
- Cross Join.
Lassen Sie uns jeden Typ von SQL-Joins anhand von Beispielen verstehen.
Innere Verbindung
Inner Join in SQL ist ein weit verbreiteter Join. Es hat alle Datensätze aus beiden Tabellen abgerufen, bis die Bedingung übereinstimmte. Dies bedeutet, dass dieser Join nur die Zeilen zurückgibt, die in beiden Tabellen gemeinsam sind.
Syntax von SQL Inner Join:
SELECT Table_Name1.Column_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3, Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 INNER JOIN Table_Name2 ON table_Name1.Column_Name =Table_Name2.Column_Name;
Betrachten Sie die bereits vorhandenen Tabellen, die bestimmte Daten enthalten:
Tabelle 1:Mitarbeiter
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NICHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUSCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SCHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUSCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Tabelle 2:Manager
Manager-ID | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTEN |
5 | Akash Kadam | C# |
Tabelle 3:Laptop:
LAPTOPID | NAME | MITARBEITERID |
L101 | DELL | NULL |
L102 | HP | 1002 |
L103 | LENOVO | NULL |
L104 | HP | 3003 |
L105 | DELL | 4002 |
L106 | LENOVO | 4003 |
L107 | DELL | 5001 |
L108 | HP | NULL |
L109 | DELL | NULL |
L110 | HP | NULL |
Beispiele für SQL Inner Join
Beispiel 1: Führen Sie eine Abfrage aus, um die Mitarbeitertabelle und die Managertabelle zu verknüpfen und Mitarbeiterdetails wie Mitarbeiter-ID, Mitarbeitername, Gehalt aus der Mitarbeitertabelle sowie Manager-ID und Managername aus der Managertabelle anzuzeigen.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, den Nachnamen, das Gehalt aus der Tabelle des Mitarbeiters und die Manager-ID, den Namen des Managers aus der Manager-Tabelle abgerufen, wobei die Manager-ID-Spalte der Mitarbeitertabelle der Manager-ID-Spalte der Manager-Tabelle entspricht. Die Abfrage gibt alle übereinstimmenden Datensätze aus beiden Tabellen zurück. Die Manager-ID ist eine gemeinsame Spalte zwischen beiden Tabellen. E ist ein Aliasname für die Mitarbeitertabelle, während M für die Managertabelle steht. Das Manager-ID-Feld wird als Fremdschlüssel in die Employee-Tabelle eingefügt. Die Manager-ID fungiert als Primärschlüssel in der Manager-Tabelle, wodurch eine Eltern-Kind-Beziehung zwischen den beiden Tabellen erstellt wird.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | Sneedeep Kaur |
2001 | PRACHI | SHARMA | 55500 | 1 | Sneedeep Kaur |
4003 | RUSCHIKA | AGARWAL | 60000 | 1 | Sneedeep Kaur |
1003 | NICHIL | VANI | 50500 | 2 | Kirti Kirtane |
2002 | BHAVESH | JAIN | 65500 | 2 | Kirti Kirtane |
3002 | ANUJA | WANRE | 50500 | 2 | Kirti Kirtane |
3001 | PRANOTI | SCHENDE | 55500 | 3 | Abhishek Manish |
3003 | DEEPAM | JAUHARI | 58500 | 3 | Abhishek Manish |
4002 | ASHWINI | BAGHAT | 54500 | 3 | Abhishek Manish |
4001 | RAJESH | GOLD | 60500 | 4 | Anupam Mishra |
5001 | ARCHIT | SHARMA | 55500 | 4 | Anupam Mishra |
1002 | VAIBHAV | SHARMA | 60000 | 5 | Akash Kadam |
2003 | RUSCHIKA | JAIN | 50000 | 4 | Akash Kadam |
Die Datensätze werden in aufsteigender Reihenfolge nach Manager-ID angezeigt.
Beispiel 2: Führen Sie eine Abfrage aus, um die Mitarbeitertabelle und die Managertabelle zu verknüpfen, und zeigen Sie Mitarbeiterdetails wie Mitarbeiter-ID, Mitarbeitername, Gehalt aus der Mitarbeitertabelle und Manager-ID und Abteilung des Managers aus der Managertabelle an, wenn das Mitarbeitergehalt größer als 58000 ist.
SELECT E.MITARBEITERID, E.VORNAME, E.NACHNAME, E.GEHALT, M.MANAGERID, M.MANAGER_ABTEILUNG VON MITARBEITERN E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE SALARY> 58000;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, den Nachnamen, das Gehalt aus der Tabelle des Mitarbeiters, die Manager-ID und die Abteilung des Managers aus der Manager-Tabelle abgerufen, wobei die Manager-ID aus der Tabelle der Mitarbeiter gleich der Manager-ID des Managers ist Tabellen nur die Mitarbeiterdatensätze, deren Gehalt größer als 58000 ist.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | MANAGERID | MANAGER_DEPARTMENT |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | ORACLE |
4003 | RUSCHIKA | AGARWAL | 60000 | 1 | ORACLE |
2002 | BHAVESH | JAIN | 65500 | 2 | FMW |
3003 | DEEPAM | JAUHARI | 58500 | 3 | JAVA |
4001 | RAJESH | GOLD | 60500 | 4 | TESTEN |
1002 | VAIBHAV | SHARMA | 60000 | 5 | C# |
Nur sechs Datensätze werden angezeigt, wenn das Gehalt eines Mitarbeiters 58000 übersteigt.
Beispiel 3: Führen Sie eine Abfrage aus, um die Tabellen „Employees'“ und „Laptop“ zu verknüpfen, zeigen Sie Mitarbeiterdetails wie Mitarbeiter-ID, Name und Gehalt des Mitarbeiters, die Stadt aus der Tabelle des Mitarbeiters, die Laptop-ID und den Laptop-Namen aus der Laptop-Tabelle an
MITARBEITER-ID AUSWÄHLEN, MITARBEITER-VORNAME, MITARBEITER-GEHALT, MITARBEITER-STADT, LAP.LAPTOPID, LAP. NAME VON MITARBEITERN EMP INNER JOIN LAPTOP LAP ON EMP.EMPLOYEEID =LAP.EMPLOYEEID;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, das Gehalt, die Stadt aus der Laptop-ID der Mitarbeitertabelle und den Namen aus der Laptop-Tabelle abgerufen, wobei die Mitarbeiter-ID aus der Mitarbeitertabelle gleich der Mitarbeiter-ID aus der Laptop-Tabelle ist. Die Mitarbeiter-ID ist ein Fremdschlüssel in der Laptop-Tabelle, der eine Eltern-Kind-Beziehung zwischen der Mitarbeiter-Tabelle und der Laptop-Tabelle erstellt.
Ausgabe:
MITARBEITERID | FIRST_NAME | GEHALT | STADT | LAPTOPID | NAME |
1002 | VAIBHAV | 60000 | NOIDA | L102 | HP |
3003 | DEEPAM | 58500 | MUMBAI | L104 | HP |
4002 | ASHWINI | 54500 | NOIDA | L105 | DELL |
4003 | RUSCHIKA | 60000 | DELHI | L106 | LENOVO |
5001 | ARCHIT | 55500 | DELHI | L107 | DELL |
Es werden nur die Datensätze von fünf Mitarbeitern angezeigt.
Beispiel 4: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen, das Gehalt und die Abteilung aus der Mitarbeitertabelle anzuzeigen
SELECT EMPLOYEEID, FIRST_NAME, SALARY, DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE SALARY> 55000 AND DEPARTMENT ='ORACLE';
Im obigen Beispiel für eine Join-Abfrage zeigen wir die Mitarbeiterdetails wie ID, Name, Gehalt und Abteilung aus der Mitarbeitertabelle, die Manager-ID und den Managernamen aus der Managertabelle an, wobei die Manager-ID aus der Mitarbeitertabelle gleich der Manager-ID ist der Manager nur die Mitarbeiter, deren Gehalt höher als 55000 ist und deren Abteilung Oracle ist.
Ausgabe:
MITARBEITERID | FIRST_NAME | GEHALT | ABTEILUNG | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | 65500 | ORACLE | 1 | Snehdeep Kaur |
2001 | PRACHI | 55500 | ORACLE | 1 | Snehdeep Kaur |
4003 | RUSCHIKA | 60000 | ORACLE | 1 | Snehdeep Kaur |
Nur drei Mitarbeiter, deren Gehalt höher als 55000 ist, und die Abteilung ist Oracle.
Beispiel 5: Führen Sie eine Verknüpfungsabfrage für die Tabellen "Employees", "Manager" und "Laptop" aus und zeigen Sie die Details der Mitarbeiter, die Manager-ID und die Laptop-ID an.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID INNER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;
Die obige Abfrage zeigt die Mitarbeiter-ID, den Vornamen, den Nachnamen, die Manager-ID und die Laptop-ID aus den Tabellen „Mitarbeiter“, „Manager“ und „Laptops“ an. Wir verbinden drei Tische. Die Mitarbeiter-ID ist eine gemeinsame Spalte zwischen der Tabelle „Employees“ und der Laptop-Tabelle und erstellt eine Eltern-Kind-Beziehung zwischen diesen drei Tabellen. Zwischen Mitarbeitern und Managern ist die Tabellenmanager-ID die gemeinsame Spalte.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | MANAGERID | LAPTOPID |
4003 | RUSCHIKA | AGARWAL | 1 | L106 |
3003 | DEEPAM | JAUHARI | 3 | L104 |
4002 | ASHWINI | BAGHAT | 3 | L105 |
5001 | ARCHIT | SHARMA | 4 | L107 |
1002 | VAIBHAV | SHARMA | 5 | L102 |
Linker äußerer Join
Der linke äußere Join gibt alle Tabellendatensätze auf der linken Seite des Joins und übereinstimmende Datensätze für die Tabelle auf der rechten Seite des Joins zurück. Die Ergebnismenge enthält null für die Datensätze, die auf der rechten Seite nicht gemeinsam sind.
Syntax von Left Outer Join:
SELECT Table_Name1.Column_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 LEFT OUTER JOIN Table_Name2 ON Table_Name1.Column_Name =Table_Name2.Column.Name;
Betrachten Sie die vorhandenen Tabellen mit den folgenden Datensätzen:
Tabelle 1:Mitarbeiter
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NICHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUSCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SCHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUSCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Tabelle 2:Manager
Manager-ID | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTEN |
5 | Akash Kadam | C# |
Tabelle 3:Laptop
LAPTOPID | NAME | MITARBEITERID |
L101 | DELL | NULL |
L102 | HP | 1002 |
L103 | LENOVO | NULL |
L104 | HP | 3003 |
L105 | DELL | 4002 |
L106 | LENOVO | 4003 |
L107 | DELL | 5001 |
L108 | HP | NULL |
L109 | DELL | NULL |
L110 | HP | NULL |
Beispiele für SQL Left Outer Join
Beispiel 1: Führen Sie eine Left-Outer-Join-Abfrage für die Tabelle "Employees'" und die Tabelle "Laptop" aus, in der Mitarbeiter-ID, Mitarbeitername und Laptop-ID angezeigt werden.
SELECT E.MITARBEITERID, E.VORNAME, E.NACHNAME, L.LAPTOPID, L.NAME VON MITARBEITERN E LEFT OUTER JOIN LAPTOP L ON E.MITARBEITERID =L.MITARBEITERID;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, den Nachnamen aus der Laptop-ID der Mitarbeitertabelle und den Namen aus der Laptop-Tabelle angezeigt und eine Left Outer Join-Abfrage für diese beiden Tabellen durchgeführt. Die Abfrage gibt Nullwerte auf der rechten Seite der Tabelle zurück, wenn die Zeilen zwischen den Tabellen nicht ähnlich sind.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | LAPTOPID | NAME |
1001 | VAIBHAVI | MISHRA | NULL | NULL |
1002 | VAIBHAV | SHARMA | L102 | HP |
1003 | NICHIL | VANI | NULL | NULL |
2001 | PRACHI | SHARMA | NULL | NULL |
2002 | BHAVESH | JAIN | NULL | NULL |
2003 | RUSCHIKA | JAIN | NULL | NULL |
3001 | PRANOTI | SCHENDE | NULL | NULL |
3002 | ANUJA | WANRE | NULL | NULL |
3003 | DEEPAM | JAUHARI | L104 | HP |
4001 | RAJESH | GOLD | NULL | NULL |
4002 | ASHWINI | BAGHAT | L105 | DELL |
4003 | RUSCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARCHIT | SHARMA | L107 | DELL |
Beispiel 2: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen, den Nachnamen und das Gehalt aus der linken äußeren Verknüpfung der Mitarbeitertabelle in der Laptop-Tabelle abzurufen, in der das Gehalt> 55000 ist.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FROM EMPLOYEES E LEFT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE SALARY> 55000;In der obigen Abfrage haben wir die Mitarbeiterdetails aus der Tabelle „Employees“ und die Laptopdetails aus der Laptoptabelle abgerufen, aber nur die Mitarbeiterdetails, bei denen das Gehalt größer als 55000 ist. Wir haben die Left Outer Join-Abfrage für diese beiden Tabellen durchgeführt. Die Abfrage gibt Nullwerte auf der rechten Seite der Tabelle zurück, wenn die Zeilen zwischen den Tabellen nicht ähnlich sind.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | LAPTOPID | NAME |
1001 | VAIBHAVI | MISHRA | 65500 | NULL | NULL |
1002 | VAIBHAV | SHARMA | 60000 | L102 | HP |
2001 | PRACHI | SHARMA | 55500 | NULL | NULL |
2002 | BHAVESH | JAIN | 65500 | NULL | NULL |
3001 | PRANOTI | SCHENDE | 55500 | NULL | NULL |
3003 | DEEPAM | JAUHARI | 58500 | L104 | HP |
4001 | RAJESH | GOLD | 60500 | NULL | NULL |
4003 | RUSCHIKA | AGARWAL | 60000 | L106 | LENOVO |
5001 | ARCHIT | SHARMA | 55500 | L107 | DELL |
Right Outer Join
Der rechte äußere Join gibt alle Tabellendatensätze auf der rechten Seite des Joins und übereinstimmende Datensätze für die Tabelle auf der linken Seite des Joins zurück. Die Ergebnismenge enthält null für die Datensätze, die auf der linken Seite nicht gemeinsam sind.
Syntax des rechten äußeren Joins:
SELECT Table_Name1.Column_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 RIGHT OUTER JOIN Table_Name2 ON Table_Name1.Column_Name =Table_Name2.Column_Name;
Beispiele für SQL Right Outer Join
Beispiel 1: Führen Sie eine Right-Outer-Join-Abfrage für die Tabelle der Mitarbeiter und die Laptop-Tabelle aus, in der die Mitarbeiter-ID und der Name des Mitarbeiters angezeigt werden.
SELECT E.MITARBEITERID, E.VORNAME, E.NACHNAME, L.LAPTOPID, L.NAME VON MITARBEITERN E Right OUTER JOIN LAPTOP L ON E.MITARBEITERID =L.MITARBEITERID;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, den Nachnamen aus der Laptop-ID der Tabelle des Mitarbeiters und den Namen aus der Laptop-Tabelle angezeigt und die Right-Outer-Join-Abfrage für diese beiden Tabellen durchgeführt. Die Abfrage gibt Nullwerte auf der linken Seite der Tabelle zurück, wenn die Zeilen zwischen den Tabellen nicht ähnlich sind.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | LAPTOPID | NAME |
NULL | NULL | NULL | L101 | DELL |
1002 | VAIBHAV | SHARMA | L102 | HP |
NULL | NULL | NULL | L103 | LENOVO |
3003 | DEEPAM | JAUHARI | L104 | HP |
4002 | ASHWINI | BAGHAT | L105 | DELL |
4003 | RUSCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARCHIT | SHARMA | L107 | DELL |
NULL | NULL | NULL | L108 | HP |
NULL | NULL | NULL | L109 | DELL |
NULL | NULL | NULL | L110 | HP |
Beispiel 2: Schreiben Sie eine Abfrage, um Mitarbeiter-ID, Vorname und Nachname aus der Tabelle des Mitarbeiters abzurufen. Right Outer Join in der Laptop-Tabelle, in der der Laptop-Name eine der Listen enthält, ist Dell, HP.
SELECT E.MITARBEITERID, E.VORNAME, E.NACHNAME, E.GEHALT, L.LAPTOPID, L.NAME VON MITARBEITERN E RIGHT OUTER JOIN LAPTOP L ON E.MITARBEITERID =L.MITARBEITERID WHERE L.NAME IN (' DELL', 'HP');
In der obigen Abfrage haben wir die Mitarbeiterdetails aus den Laptopdetails des Mitarbeitertischs auf dem Laptoptisch angezeigt. Wir haben die Right-Outer-Join-Abfrage für diese beiden Tabellen durchgeführt, nur der Mitarbeiter, dessen Laptop-Name eine der Listen enthält, ist Dell und HP. Die Abfrage gibt Nullwerte auf der linken Seite der Tabelle zurück, wenn die Zeilen zwischen den Tabellen nicht ähnlich sind.
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | LAPTOPID | NAME |
NULL | NULL | NULL | L101 | DELL |
1002 | VAIBHAV | SHARMA | L102 | HP |
3003 | DEEPAM | JAUHARI | L104 | HP |
4002 | ASHWINI | BAGHAT | L105 | DELL |
5001 | ARCHIT | SHARMA | L107 | DELL |
NULL | NULL | NULL | L108 | HP |
NULL | NULL | NULL | L109 | DELL |
NULL | NULL | NULL | L110 | HP |
Vollständiger äußerer Join
Full Outer Join führt das Ergebnis sowohl des Left Outer Joins als auch des Right Outer Joins zusammen. Full Outer Join ist dasselbe wie Cross Join. Full Outer Joins gibt die Ausgabe zurück, bei der Zeilen zwischen den Tabellen gemeinsam oder ungewöhnlich sind.
Syntax der vollständigen äußeren Verknüpfung:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLE1 FULL JOIN TABLE2;
Beispiel 1: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen und den Nachnamen der Manager-ID aus der Full Outer Join Manager-Tabelle der Mitarbeitertabelle anzuzeigen, in der das Mitarbeitergehalt größer als 65000 ist.
MITARBEITER-ID AUSWÄHLEN, VORNAME, NACHNAME, M. MANAGERID VON MITARBEITER VOLLSTÄNDIG JOIN MANAGER M WHERE GEHALT> 65000;
In der obigen Abfrage haben wir die Mitarbeiterdetails und Managerdetails aus der Mitarbeiter- und Managertabelle angezeigt, wenn das Mitarbeitergehalt über 65000 liegt, indem wir eine vollständige Verknüpfung verwenden. Verbinden Sie vollständig jede Reihe der Mitarbeitertabelle mit jeder Reihe der Managertabelle, d. h. das kartesische Produkt wird entstehen. M * N
Ausgabe:
MITARBEITERID | FIRST_NAME | NACHNAME | MANAGERID |
1001 | VAIBHAVI | MISHRA | 1 |
1001 | VAIBHAVI | MISHRA | 2 |
1001 | VAIBHAVI | MISHRA | 3 |
1001 | VAIBHAVI | MISHRA | 4 |
1001 | VAIBHAVI | MISHRA | 5 |
2002 | BHAVESH | JAIN | 1 |
2002 | BHAVESH | JAIN | 2 |
2002 | BHAVESH | JAIN | 3 |
2002 | BHAVESH | JAIN | 4 |
2002 | BHAVESH | JAIN | 5 |
Wie wir sehen können, verbindet sich die Mitarbeiter-ID 1001 mit jeder Manager-ID, ebenso wie die Mitarbeiter-ID 2002.
Beispiel 2: Führen Sie eine vollständige Outer-Join-Abfrage für die Tabelle "Employees'" und die Tabelle "Laptop" aus, wobei das Gehalt des Mitarbeiters größer als 60000 ist und der Standort des Mitarbeiters Pune ist.
SELECT LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY FROM LAPTOP FULL JOIN EMPLOYEES E WHERE SALARY> 60000 AND CITY ='PUNE';
In der obigen Abfrage zeigen wir die Laptop-ID, die Mitarbeiter-ID, den Vornamen, das Gehalt und die Stadt von Laptop Full Join-Mitarbeitern an, nur diejenigen, deren Gehalt größer als 60000 ist und deren Stadt Pune ist. Wenn beide Bedingungen nur für Mitarbeiter zutreffen, wird der Datensatz abgerufen.
Ausgabe:
Cross Join
Kreuzverknüpfungen in SQL werden nichts anderes als ein kartesisches Produkt genannt. Jede Zeile einer Tabelle wird mit jeder Zeile der anderen Tabelle kombiniert oder zusammengeführt. M * N ist Cross-Join
Syntax von Cross Join:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLE1 CROSS JOIN TABLE2;
Beispiel 1: Schreiben Sie eine Abfrage, um Cross-Join-Operationen für die Employees-Tabelle und die Manager-Tabelle durchzuführen, in denen der Vorname des Mitarbeiters mit A
beginntSELECT EMPLOYEEID, FIRST_NAME, M.MANAGERID FROM EMPLOYEES CROSS JOIN MANAGER M WHERE FIRST_NAME WIE 'A%';
Im obigen Beispiel einer vollständigen Outer-Join-Abfrage haben wir die Mitarbeiterdetails und Managerdetails aus der Employee-Tabelle und der Manager-Tabelle abgerufen, aber nur die Datensätze, bei denen der Vorname des Mitarbeiters mit dem Buchstaben „A“ beginnt.
Ausgabe:
Das Ergebnis zeigt, dass die Mitarbeiter-ID ein Cross Join mit jeder Manager-ID-Zeile ist.
M * N Hier ist M =3; Mitarbeiter-ID aus Mitarbeitertabellen
N =5; Manager-ID aus Manager-Tabelle 3 * 5 =15 Zeilen.
Beispiel 2: Schreiben Sie eine Abfrage, um einen Cross-Join-Vorgang für Laptop-Tabellen und Mitarbeitertabellen durchzuführen, bei denen das Mitarbeitergehalt größer als 58000 und Mumbai ist.
SELECT LAPTOPID, NAME, E.EMPLOYEEID FROM LAPTOP CROSS JOIN EMPLOYEES E WHERE SALARY> 58000 AND CITY ='MUMBAI';
In der obigen Abfrage haben wir die Laptop-ID, den Namen und die Mitarbeiter-ID aus der Laptop-Tabelle angezeigt, um eine Cross-Join-Operation für die Mitarbeitertabelle durchzuführen, wenn das Mitarbeitergehalt größer als 58000 ist und die Stadt Pune ist. Cross Join verhält sich wie M * N.
Ausgabe: