In diesem Artikel lernen wir das INNER JOIN-Konzept kennen und wie man es in SQL mit der WHERE-Klausel verwendet.
Was ist INNER JOIN in SQL?
Inner Join ist eine Art Join in SQL. Inner Join in SQL ist ein weit verbreiteter Join. Dieser Join gibt nur die Zeilen zurück, die in beiden Tabellen gemeinsam sind. Inner Join wird verwendet, um zwei Tabellen zu verknüpfen.
Syntax von Inner Join in SQL:
SELECT table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 FROM TABLE1 INNER JOIN TABLE2 ON table1.column = table2.column;
Table1.column =table2.column ist die gemeinsame Spalte, die die Eltern-Kind-Beziehung zwischen diesen beiden Tabellen verwaltet.
Es gibt einige Schritte, die wir im Inner Join in der SQL-Abfrage verwenden müssen:
1. Erstellen Sie eine neue Datenbank oder verwenden Sie eine vorhandene Datenbank, indem Sie die Datenbank mit dem Schlüsselwort USE gefolgt vom Datenbanknamen auswählen.
2. Erstellen Sie eine neue Tabelle in der ausgewählten Datenbank oder verwenden Sie eine bereits erstellte Tabelle.
3. Wenn die Tabelle neu erstellt wird, fügen Sie die Datensätze mit der INSERT-Abfrage in die neu erstellte Datenbank ein.
4. Zeigen Sie die eingefügten Daten mit der SELECT-Abfrage ohne die Inner Join-Abfrage an.
5 Jetzt können wir den Inner Join in den SQL-Abfragen verwenden.
Schritt 1:Erstellen Sie eine neue Datenbank oder verwenden Sie eine bereits erstellte Datenbank.
Ich habe bereits eine Datenbank erstellt. Ich werde meinen bereits erstellten Datenbanknamen Company.
verwendenUSE Company;
Firma ist der Datenbankname.
Diejenigen, die keine Datenbank erstellt haben, folgen der folgenden Abfrage, um die Datenbank zu erstellen:
CREATE DATABASE database_name;
Wählen Sie nach dem Erstellen der Datenbank die Datenbank mit dem Schlüsselwort USE gefolgt vom Datenbanknamen aus.
Schritt 2:Erstellen Sie eine neue Tabelle oder verwenden Sie eine bereits vorhandene Tabelle:
Ich habe bereits eine Tabelle erstellt. Ich werde die vorhandene Tabelle mit den Namen "Employees" und "Manager" verwenden, wenn wir die Inner Join-Abfrage ausführen.
Befolgen Sie zum Erstellen der neuen Tabelle die folgende CREATE TABLE-Syntax:
CREATE TABLE table_name(
columnname1 datatype(column size),
columnname2 datatype(column size),
columnname3 datatype(column size)
);
Schritt 3:Fügen Sie die Datensätze mit der INSERT-Abfrage in die neu erstellte Tabelle ein
Verwenden Sie die folgende Syntax, um neue Datensätze in die Tabelle einzufügen:
INSERT INTO table_name VALUES(value1, value2, value3);
Schritt 4: Sehen Sie sich die Datensätze mit der SELECT-Abfrage an.
Zeigen Sie die Datensätze aus der Tabelle mit der folgenden Syntax an:
SELECT * FROM table_name;
Die folgende Abfrage zeigt die Datensätze der Mitarbeiter an.
SELECT * FROM Employees;
Die Ausgabe der obigen SELECT-Abfrage ist:
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 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | TESTEN | 4 |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACLE | 1 |
Die folgende Abfrage zeigt die Aufzeichnungen von Manager.
anSELECT * FROM Manager;
Die Ausgabe der obigen SELECT-Abfrage ist:
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# |
Die folgende Abfrage zeigt die Aufzeichnungen von Laptop.
anSELECT * FROM Laptop;
Die Ausgabe der obigen SELECT-Abfrage ist:
LAPTOPID | NAME | MITARBEITERID |
101 | DELL | NULL |
102 | HP | 1002 |
103 | LENOVO | NULL |
104 | HP | 3003 |
105 | DELL | 4002 |
106 | LENOVO | 4003 |
107 | DELL | 5001 |
108 | HP | NULL |
109 | DELL | NULL |
110 | HP | NULL |
111 | LENOVO | 2002 |
112 | LENOVO | 6003 |
113 | HP | 1003 |
Schritt 5:Wir sind bereit, den INNER JOIN in den Abfragen zu verwenden
Lassen Sie uns den Inner Join anhand von Beispielen verstehen.
Beispiel 1: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen, den Nachnamen, das Gehalt, die Stadt aus der Tabelle des Mitarbeiters und die Manager-ID und den Namen des Managers aus der Manager-Tabelle anzuzeigen, indem Sie den Inner Join verwenden.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, E.CITY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;
In der obigen Abfrage haben wir Mitarbeiter-ID, Vorname, Nachname, Gehalt, Stadt aus der Tabelle des Mitarbeiters und Manager-ID, Name 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. Die Manager-ID-Spalte fungiert als Fremdschlüssel in der Mitarbeitertabelle. Die Manager-ID fungiert als Primärschlüssel in der Manager-Tabelle, wodurch eine Eltern-Kind-Beziehung zwischen den beiden Tabellen erstellt wird.
Die Ausgabe der obigen Abfrage ist:
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
4003 | RUSCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACLE | 1 |
1003 | NICHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3001 | PRANOTI | SCHENDE | 55500 | PUNE | JAVA | 3 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | TESTEN | 4 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
2003 | RUSCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
Die Datensätze werden in aufsteigender Reihenfolge nach der Standard-Manager-ID angezeigt.
Beispiel 2: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen, den Nachnamen, die Stadt und die Abteilung aus der Tabelle des Mitarbeiters und die Manager-ID und den Namen des Managers aus der Manager-Tabelle anzuzeigen, indem Sie Inner Join verwenden, wobei Mitarbeiterabteilung C# ist.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.CITY, E.DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE DEPARTMENT = ‘C#’;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, den Nachnamen, die Stadt und die Abteilung aus der Mitarbeitertabelle, die Manager-ID und den Managernamen aus der Manager-Tabelle abgerufen, wobei die Manager-ID aus der Mitarbeitertabelle gleich der Manager-ID aus der Manager-Tabelle ist die Mitarbeiterdatensätze, deren Mitarbeiterabteilung C# ist.
Die Ausgabe der obigen Abfrage ist:
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
2003 | RUSCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
In der obigen Ausgabe können wir sehen, dass nur die Datensätze von Mitarbeitern abgerufen werden, deren Abteilung C# ist. Wir verwenden die WHERE-Klausel mit dem INNER-Join.
Beispiel 3: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen, das Gehalt, die Stadt und die Abteilung aus der Tabelle des Mitarbeiters sowie die Laptop-ID und den Laptop-Namen aus der Laptop-Tabelle mit Inner Join anzuzeigen.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME FROM EMPLOYEES E INNER JOIN LAPTOP L ON E.EMPLOYEEID = L.EMPLOYEEID;
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, das Gehalt, die Stadt und die Abteilung aus der Mitarbeitertabelle und die Laptop-ID und den Namen aus der Laptop-Tabelle abgerufen, wobei die Mitarbeiter-ID aus der Mitarbeiter-Tabelle der Mitarbeiter-ID aus der Laptop-Tabelle entspricht . Die Mitarbeiter-ID ist ein Fremdschlüssel in der Laptop-Tabelle, der eine Eltern-Kind-Beziehung zwischen der Employee-Tabelle und der Laptop-Tabelle erstellt.
Die Ausgabe der obigen Abfrage ist:
MITARBEITERID | FIRST_NAME | GEHALT | STADT | ABTEILUNG | LAPTOPID | NAME |
1002 | VAIBHAV | 60000 | NOIDA | C# | 102 | HP |
3003 | DEEPAM | 58500 | MUMBAI | JAVA | 104 | HP |
4002 | ASHWINI | 54500 | NOIDA | JAVA | 105 | DELL |
4003 | RUSCHIKA | 60000 | DELHI | ORACLE | 106 | LENOVO |
5001 | ARCHIT | 55500 | DELHI | TESTEN | 107 | DELL |
2002 | BHAVESH | 65500 | PUNE | FMW | 111 | LENOVO |
6003 | NIKITA | 65000 | HYDERABAD | ORACLE | 112 | LENOVO |
1003 | NICHIL | 50500 | JAIPUR | FMW | 113 | HP |
In der angegebenen Ausgabe werden nur die Datensätze angezeigt, denen der Laptop zugewiesen ist.
Beispiel 4: Schreiben Sie eine Abfrage, um die Mitarbeiter-ID, den Vornamen, das Gehalt und die Abteilung aus der Mitarbeitertabelle sowie die Manager-ID und den Managernamen aus der Manager-Tabelle anzuzeigen, indem Sie eine innere Verknüpfung verwenden, wobei das Gehalt> 57000 oder die Abteilung Oracle ist.
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 > 57000 OR DEPARTMENT = 'ORACLE';
In der obigen Abfrage haben wir die Mitarbeiter-ID, den Vornamen, das Gehalt und die Abteilung aus der Tabelle des Mitarbeiters und die Manager-ID und den Namen des Managers aus der Manager-Tabelle abgerufen, wobei die Manager-ID aus der Mitarbeiter-Tabelle der Manager-ID des Managers nur derjenigen Mitarbeiter entspricht, deren Gehalt ist größer als 57000 oder Abteilung ist Oracle.
Die Ausgabe der obigen Abfrage ist:
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
4003 | RUSCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
In der obigen Ausgabe werden nur die Mitarbeiterdatensätze angezeigt, deren Gehalt größer als 57000 ist oder deren Mitarbeiterabteilung „Oracle“ ist. Die ODER-Operatoranzeige zeichnet auf, ob eine der angegebenen Bedingungen in der Abfrage wahr ist.