Database
 sql >> Base de données >  >> RDS >> Database

Comment utiliser INNER JOIN en SQL

Dans cet article, nous allons découvrir le concept INNER JOIN et comment l'utiliser en SQL avec la clause WHERE.

Qu'est-ce qu'INNER JOIN en SQL ?

La jointure interne est un type de jointure dans le SQL. La jointure interne dans SQL est une jointure largement utilisée. Cette jointure renvoie uniquement les lignes communes aux deux tables. La jointure interne est utilisée pour joindre deux tables.

Syntaxe de la jointure interne dans le SQL :

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

Table1.column =table2.column est la colonne commune qui maintient la relation parent-enfant entre ces deux tables.

Il y a quelques étapes que nous devons utiliser dans la jointure interne dans la requête SQL :

1. Créez une nouvelle base de données ou utilisez une base de données existante en sélectionnant la base de données à l'aide du mot-clé USE suivi du nom de la base de données.

2. Créez une nouvelle table dans la base de données sélectionnée, ou vous pouvez utiliser une table déjà créée.

3. Si la table est nouvellement créée, insérez les enregistrements dans la base de données nouvellement créée à l'aide de la requête INSERT.

4. Affichez les données insérées à l'aide de la requête SELECT sans la requête Inner Join.

5 Nous sommes maintenant prêts à utiliser la jointure interne dans les requêtes SQL.

Étape 1 :Créez une nouvelle base de données ou utilisez une base de données déjà créée.

J'ai déjà créé une base de données. J'utiliserai le nom de ma base de données créée existante, Société.

USE Company;

Company est le nom de la base de données.

Ceux qui n'ont pas créé de base de données suivent la requête ci-dessous pour créer la base de données :

CREATE DATABASE database_name;

Après avoir créé la base de données, sélectionnez la base de données en utilisant le mot-clé USE suivi du nom de la base de données.

Étape 2 :Créez un nouveau tableau ou utilisez un tableau déjà existant :

J'ai déjà créé un tableau. J'utiliserai la table existante nommée Employees et Manager pendant que nous exécutons la requête Inner Join.

Pour créer la nouvelle table, suivez la syntaxe CREATE TABLE ci-dessous :

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Étape 3 :Insérez les enregistrements dans la table nouvellement créée à l'aide de la requête INSERT

Utilisez la syntaxe ci-dessous pour insérer de nouveaux enregistrements dans le tableau :

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

Étape 4 : Afficher les enregistrements à l'aide de la requête SELECT.

Affichez les enregistrements de la table en utilisant la syntaxe suivante :

SELECT * FROM table_name;

La requête suivante affichera les enregistrements des Employés.

SELECT * FROM Employees;

Le résultat de la requête SELECT ci-dessus est :

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOÏDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 Bombay C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3
4001 RAJESH GOUD 60500 Bombay TEST 4
4002 ASHWINI BAGHAT 54500 NOÏDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGAR C# 5
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
6002 ATISH JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1

La requête suivante affichera les enregistrements de Manager.

SELECT * FROM Manager;

Le résultat de la requête SELECT ci-dessus est :

ID gestionnaire nom_du_responsable manager_department
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FMW
3 Abhishek Manich JAVA
4 Anupam Mishra TEST
5 Akash Kadam C#

La requête suivante affichera les enregistrements de Laptop.

SELECT * FROM Laptop;

Le résultat de la requête SELECT ci-dessus est :

ID PORTABLE NOM ID EMPLOYEE
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

Étape 5 :Nous sommes prêts à utiliser INNER JOIN dans les requêtes

Comprenons la jointure interne à l'aide d'exemples.

Exemple 1 : Écrivez une requête pour afficher l'ID de l'employé, le prénom, le nom, le salaire, la ville de la table de l'employé, et l'ID du responsable et le nom du responsable de la table du responsable à l'aide de la jointure interne.

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;

Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le nom, le salaire, la ville de la table de l'employé et l'identifiant du responsable, le nom du responsable de la table du responsable où la colonne de l'identifiant du responsable de la table des employés est égale à la colonne de l'identifiant du responsable de la table du responsable. La requête renverra tous les enregistrements correspondants des deux tables. L'ID du gestionnaire est une colonne commune aux deux tables. E est un nom d'alias pour la table des employés, tandis que M est pour la table des managers. La colonne d'ID du responsable fonctionne comme une clé étrangère dans la table de l'employé. L'identifiant du responsable fonctionne comme clé primaire dans la table des responsables, ce qui crée une relation parent-enfant entre les deux tables.

Le résultat de la requête ci-dessus est :

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
6003 NIKITA INGALE 65000 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 Bombay JAVA 3
4002 ASHWINI BAGHAT 54500 NOÏDA JAVA 3
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 Bombay TEST 4
5001 ARCHIT SHARMA 55500 DELHI TEST 4
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
1002 VAIBHAV SHARMA 60000 NOÏDA C# 5
2003 RUCHIKA JAIN 50000 Bombay C# 5
5003 ROSHAN NEHTE 48500 CHANDIGAR C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

Les enregistrements sont affichés dans l'ordre croissant de l'identifiant du responsable par défaut.

Exemple 2 : Écrivez une requête pour afficher l'ID, le prénom, le nom, la ville et le service de l'employé à partir de la table de l'employé et l'ID du responsable et le nom du responsable à partir de la table du responsable à l'aide de la jointure interne où le service de l'employé est 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#’;

Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le nom, la ville et le service de la table de l'employé, l'identifiant du responsable et le nom du responsable de la table du responsable où l'identifiant du responsable de la table des employés est égal à l'identifiant du responsable de la table du responsable uniquement. les enregistrements d'employés dont le service des employés est C#.

Le résultat de la requête ci-dessus est :

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1002 VAIBHAV SHARMA 60000 NOÏDA C# 5
2003 RUCHIKA JAIN 50000 Bombay C# 5
5003 ROSHAN NEHTE 48500 CHANDIGAR C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

Dans la sortie ci-dessus, nous pouvons voir que seuls ces enregistrements sont récupérés auprès des employés dont le service est C#. Nous utilisons la clause WHERE avec la jointure INNER.

Exemple 3 : Écrivez une requête pour afficher l'identifiant, le prénom, le salaire, la ville et le service de l'employé à partir de la table de l'employé, ainsi que l'identifiant et le nom de l'ordinateur portable à partir de la table de l'ordinateur portable à l'aide de la jointure interne.

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;

Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le salaire, la ville et le service de la table des employés, l'identifiant de l'ordinateur portable et le nom de la table de l'ordinateur portable où l'identifiant de l'employé de la table des employés est égal à l'identifiant de l'employé de la table de l'ordinateur portable. . L'identifiant de l'employé est une clé étrangère dans la table Laptop, qui crée une relation parent-enfant entre la table Employee et la table Laptop.

Le résultat de la requête ci-dessus est :

ID EMPLOYEE FIRST_NAME SALAIRE VILLE DÉPARTEMENT ID PORTABLE NOM
1002 VAIBHAV 60000 NOÏDA C# 102 HP
3003 DEEPAM 58500 Bombay JAVA 104 HP
4002 ASHWINI 54500 NOÏDA JAVA 105 DELL
4003 RUCHIKA 60000 DELHI ORACLE 106 LENOVO
5001 ARCHIT 55500 DELHI TEST 107 DELL
2002 BHAVESH 65500 PUNE FMW 111 LENOVO
6003 NIKITA 65000 HYDERABAD ORACLE 112 LENOVO
1003 NIKHIL 50500 JAIPUR FMW 113 HP

Seuls les enregistrements sont affichés dans la sortie donnée à laquelle l'ordinateur portable est attribué.

Exemple 4 : Écrivez une requête pour afficher l'identifiant, le prénom, le salaire et le service de l'employé à partir de la table des employés, ainsi que l'identifiant du responsable et le nom du responsable à partir de la table du responsable à l'aide d'une jointure interne où le salaire > 57 000 ou le service correspond à 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';

Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le salaire et le service de la table de l'employé, ainsi que l'identifiant du responsable et le nom du responsable de la table du responsable où l'identifiant du responsable de la table des employés est égal à l'identifiant du responsable du responsable uniquement les employés dont le salaire est supérieur à 57000 ou le service est Oracle.

Le résultat de la requête ci-dessus est :

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 Bombay TEST 4
1002 VAIBHAV SHARMA 60000 NOÏDA C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

Dans la sortie ci-dessus, seuls les enregistrements d'employés dont le salaire est supérieur à 57 000 ou dont le service employé est « Oracle » sont affichés. L'opérateur OR affiche les enregistrements si l'une des conditions données dans la requête est vraie.