sql >> Database teknologi >  >> RDS >> Database

Sådan bruger du INNER JOIN i SQL

I denne artikel vil vi lære om INNER JOIN-konceptet, og hvordan man bruger det i SQL med WHERE-sætningen.

Hvad er INNER JOIN i SQL?

Inner Join er en type join i SQL. Inner Join i SQL er en meget brugt joinforbindelse. Denne join returnerer kun de rækker, der er fælles i begge tabeller. Indre sammenføjning bruges til at forbinde to borde.

Syntaks for indre joinforbindelse i SQL:

SELECT table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 FROM TABLE1 INNER JOIN TABLE2 ON table1.column = table2.column;

Table1.column =table2.column er den fælles kolonne, der vedligeholder det overordnede underordnede forhold mellem disse to tabeller.

Der er nogle trin, som vi skal bruge i den indre forbindelse i SQL-forespørgslen:

1. Opret en ny database, eller brug en eksisterende database ved at vælge databasen ved at bruge nøgleordet USE efterfulgt af databasenavnet.

2. Opret en ny tabel i den valgte database, eller du kan bruge en allerede oprettet tabel.

3. Hvis tabellen er nyoprettet, skal du indsætte posterne i den nyoprettede database ved hjælp af INSERT-forespørgslen.

4. Se de indsatte data ved hjælp af SELECT-forespørgslen uden Inner Join-forespørgslen.

5 Nu er vi klar til at bruge Inner Join i SQL-forespørgslerne.

Trin 1:Opret en ny database, eller brug en allerede oprettet database.

Jeg har allerede oprettet en database. Jeg vil bruge mit eksisterende oprettede databasenavn, Company.

USE Company;

Firma er databasenavnet.

De, der ikke har oprettet en database, følg nedenstående forespørgsel for at oprette databasen:

CREATE DATABASE database_name;

Når du har oprettet databasen, skal du vælge databasen med nøgleordet USE efterfulgt af databasenavnet.

Trin 2:Opret en ny tabel, eller brug allerede eksisterende tabel:

Jeg har allerede lavet en tabel. Jeg vil bruge den eksisterende tabel med navnet Medarbejdere og ledere, når vi udfører forespørgslen om Inner Join.

For at oprette den nye tabel, følg nedenstående CREATE TABLE syntaks:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Trin 3:Indsæt posterne i den nyoprettede tabel ved hjælp af INSERT-forespørgslen

Brug nedenstående syntaks til at indsætte nye poster i tabellen:

INSERT INTO table_name VALUES(value1, value2, value3);

Trin 4: Se registreringerne ved hjælp af SELECT-forespørgslen.

Se posterne fra tabellen ved hjælp af følgende syntaks:

SELECT * FROM table_name;

Følgende forespørgsel viser medarbejdernes optegnelser.

SELECT * FROM Employees;

Outputtet af ovenstående SELECT-forespørgsel er:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TEST 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
6002 ATISH JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1

Følgende forespørgsel viser managerens optegnelser.

SELECT * FROM Manager;

Outputtet af ovenstående SELECT-forespørgsel er:

Managerid manager_navn manager_afdeling
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TEST
5 Akash Kadam C#

Følgende forespørgsel vil vise optegnelserne for den bærbare computer.

SELECT * FROM Laptop;

Outputtet af ovenstående SELECT-forespørgsel er:

LAPTOPID NAVN EMPLOYEEID
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

Trin 5:Vi er klar til at bruge INNER JOIN i forespørgslerne

Lad os forstå den indre forbindelse ved hjælp af eksempler.

Eksempel 1: Skriv en forespørgsel for at vise medarbejder-id, fornavn, efternavn, løn, by fra medarbejderens tabel og leder-id og ledernavn fra ledertabellen ved hjælp af den indre joinforbindelse.

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;
>

I ovenstående forespørgsel har vi hentet medarbejder-id, fornavn, efternavn, løn, by fra medarbejderens tabel og leder-id, ledernavn fra ledertabel, hvor medarbejderes tabelleder-id-kolonne er lig med ledertabel leder-id kolonne. Forespørgslen returnerer alle match-poster fra begge tabeller. Manager-id er en fælles kolonne mellem begge tabeller. E er et aliasnavn for medarbejderens bord, mens M er for lederbordet. Leder-id-kolonnen fungerer som en fremmednøgle i medarbejderens tabel. Manager-id'et fungerer som den primære nøgle i managertabellen, hvilket skaber en forældre-underordnet relation mellem de to tabeller.

Outputtet af ovenstående forespørgsel er:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2002 BHAVESH JAIN 65500 PUNE FMW 2
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TEST 4
5001 ARCHIT SHARMA 55500 DELHI TEST 4
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

Posterne vises i stigende rækkefølge efter standard manager-id.

Eksempel 2: Skriv en forespørgsel for at vise medarbejder-id, fornavn, efternavn, by og afdeling fra medarbejderens tabel og leder-id og ledernavn fra ledertabel ved hjælp af Inner Join, hvor medarbejderafdelingen er C#.

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#’;

I ovenstående forespørgsel har vi hentet medarbejder-id, fornavn, efternavn, by og afdeling fra medarbejderens tabel, leder-id og ledernavn fra ledertabel, hvor leder-id fra medarbejdertabel kun er lig med leder-id fra ledertabel de medarbejderposter, hvis medarbejderafdeling er C#.

Outputtet fra ovenstående forespørgsel er:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

I ovenstående output kan vi kun se de poster, der er hentet fra medarbejdere, hvis afdeling er C#. Vi bruger WHERE-sætningen med INNER join.

Eksempel 3: Skriv en forespørgsel for at vise medarbejder-id, fornavn, løn, by og afdeling fra medarbejderens tabel, og laptop-id og laptop-navn fra laptop-tabellen ved hjælp af Inner Join.

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;
>

I ovenstående forespørgsel har vi hentet medarbejder-id, fornavn, løn, by og afdeling fra medarbejdernes tabel, og laptop-id, og navn fra laptop-tabel, hvor medarbejder-id fra medarbejder-tabel er lig med medarbejder-id fra laptop-tabellen . Medarbejder-id er en fremmednøgle i Laptop-tabellen, som skaber et forældre-barn-forhold mellem Medarbejder-tabellen og Laptop-tabellen.

Outputtet fra ovenstående forespørgsel er:

EMPLOYEEID FIRST_NAME LØN BY AFDELING LAPTOPID NAVN
1002 VAIBHAV 60.000 NOIDA C# 102 HP
3003 DEEPAM 58500 MUMBAI JAVA 104 HP
4002 ASHWINI 54500 NOIDA JAVA 105 DELL
4003 RUCHIKA 60.000 DELHI ORACLE 106 LENOVO
5001 ARCHIT 55500 DELHI TEST 107 DELL
2002 BHAVESH 65500 PUNE FMW 111 LENOVO
6003 NIKITA 65.000 HYDERABAD ORACLE 112 LENOVO
1003 NIKHIL 50500 JAIPUR FMW 113 HP

Kun de poster vises i det givne output, som den bærbare computer er tildelt.

Eksempel 4: Skriv en forespørgsel for at vise medarbejder-id, fornavn, løn og afdeling fra medarbejdertabellen og leder-id og ledernavn fra ledertabel ved hjælp af indre joinforbindelse, hvor løn> 57.000 eller afdeling er Oracle.

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';

I ovenstående forespørgsel har vi hentet medarbejder-id, fornavn, løn og afdeling fra medarbejderens tabel, og leder-id og ledernavn fra ledertabel, hvor leder-id fra medarbejdertabel svarer til leder-id fra leder, kun de medarbejdere, hvis lønnen er større end 57.000, eller afdelingen er Oracle.

Outputtet fra ovenstående forespørgsel er:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TEST 4
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

I ovenstående output vises kun de medarbejderposter, hvis løn er større end 57.000, eller medarbejderafdelingen er 'Oracle'. OR-operatoren viser, om en af ​​de givne betingelser i forespørgslen er sand.


  1. Hvor gemmer PostgreSQL databasen?

  2. Sådan laver du en INSERT Pass-Through-forespørgsel i SQL Server

  3. Oprettelse af en webapp fra bunden ved hjælp af Python Flask og MySQL:Del 2

  4. Begræns PostgreSQL brugeradgang ved hjælp af skema og visninger