Database
 sql >> Datenbank >  >> RDS >> Database

Wie man INNER JOIN in SQL verwendet

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.

verwenden
USE 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.

an
SELECT * 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.

an
SELECT * 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.