Le SQL JOIN combine une ou plusieurs tables en fonction de leur relation. Le SQL JOIN implique une table parent et une relation de table enfant.
Il existe différents types de SQL JOINS :
- Jointure interne
- Jointure externe gauche
- Jointure externe droite
- Jointure externe complète
- Joindre croisé.
Comprenons chaque type de jointures SQL à l'aide d'exemples.
Jointure interne
La jointure interne dans SQL est une jointure largement utilisée. Il a récupéré tous les enregistrements des deux tables jusqu'à ce que et à moins que la condition ne corresponde. Cela signifie que cette jointure renverra uniquement les lignes communes aux deux tables.
Syntaxe de la jointure interne SQL :
SELECT Table_Name1.Colum_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 ;
Considérez les tables déjà existantes, qui contiennent certaines données :
Tableau 1 :Employés
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 |
Tableau 2 :Gestionnaire
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# |
Tableau 3 :Ordinateur portable :
ID PORTABLE | NOM | ID EMPLOYEE |
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 |
Exemples de jointure interne SQL
Exemple 1 : Exécutez une requête pour joindre la table des employés et la table des responsables et affichez les détails des employés tels que l'identifiant de l'employé, le nom de l'employé, le salaire de la table de l'employé, et l'identifiant du responsable et le nom du responsable de la table des responsables.
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 ;
Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le nom, le salaire 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. Le champ d'ID du responsable est placé en tant que clé étrangère sur la table des employés. 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.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | SALAIRE | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | Sneedeep Kaur |
2001 | PRACHI | SHARMA | 55500 | 1 | Sneedeep Kaur |
4003 | RUCHIKA | AGARWAL | 60000 | 1 | Sneedeep Kaur |
1003 | NIKHIL | VANI | 50500 | 2 | Kirti Kirtane |
2002 | BHAVESH | JAIN | 65500 | 2 | Kirti Kirtane |
3002 | ANUJA | WANRE | 50500 | 2 | Kirti Kirtane |
3001 | PRANOTI | SHENDE | 55500 | 3 | Abhishek Manich |
3003 | DEEPAM | JAUHARI | 58500 | 3 | Abhishek Manich |
4002 | ASHWINI | BAGHAT | 54500 | 3 | Abhishek Manich |
4001 | RAJESH | GOUD | 60500 | 4 | Anupam Mishra |
5001 | ARCHIT | SHARMA | 55500 | 4 | Anupam Mishra |
1002 | VAIBHAV | SHARMA | 60000 | 5 | Akash Kadam |
2003 | RUCHIKA | JAIN | 50000 | 4 | Akash Kadam |
Les enregistrements sont affichés dans l'ordre croissant par identifiant de responsable.
Exemple 2 : Exécutez une requête pour joindre la table des employés et la table des responsables, et affichez les détails de l'employé comme l'identifiant de l'employé, le nom de l'employé, le salaire de la table de l'employé et l'identifiant du responsable et le département du responsable de la table des responsables où le salaire de l'employé est supérieur à 58 000.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_DEPARTMENT FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE SALARY> 58000 ;
Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le nom, le salaire de la table de l'employé, l'identifiant du responsable et le département du responsable de la table des responsables, où l'identifiant du responsable de la table des employés est égal à l'identifiant du responsable du responsable. tablez uniquement les enregistrements d'employés dont le salaire est supérieur à 58 000.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | SALAIRE | MANAGERID | MANAGER_DEPARTMENT |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | ORACLE |
4003 | RUCHIKA | AGARWAL | 60000 | 1 | ORACLE |
2002 | BHAVESH | JAIN | 65500 | 2 | FMW |
3003 | DEEPAM | JAUHARI | 58500 | 3 | JAVA |
4001 | RAJESH | GOUD | 60500 | 4 | TEST |
1002 | VAIBHAV | SHARMA | 60000 | 5 | C# |
Seuls six enregistrements sont affichés lorsque le salaire d'un employé dépasse 58 000.
Exemple 3 : Exécutez une requête pour rejoindre la table des employés et la table d'ordinateur portable, affichez les détails de l'employé comme l'identifiant de l'employé, le nom de l'employé et le salaire, la ville de la table de l'employé, l'identifiant de l'ordinateur portable et le nom de l'ordinateur portable de la table de l'ordinateur portable
SELECT EMP.EMPLOYEEID, EMP.FIRST_NAME, EMP.SALARY, EMP.CITY, LAP.LAPTOPID, LAP. NOM DES EMPLOYÉS EMP INNER JOIN LAPTOP LAP ON EMP.EMPLOYEEID =LAP.EMPLOYEEID ;
Dans la requête ci-dessus, nous avons récupéré l'identifiant de l'employé, le prénom, le salaire, la ville de l'identifiant de l'ordinateur portable de la table des employés 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.
Sortie :
ID EMPLOYEE | FIRST_NAME | SALAIRE | VILLE | ID PORTABLE | NOM |
1002 | VAIBHAV | 60000 | NOÏDA | L102 | HP |
3003 | DEEPAM | 58500 | Bombay | L104 | HP |
4002 | ASHWINI | 54500 | NOÏDA | L105 | DELL |
4003 | RUCHIKA | 60000 | DELHI | L106 | LENOVO |
5001 | ARCHIT | 55500 | DELHI | L107 | DELL |
Seuls les enregistrements de cinq employés sont affichés.
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.
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' ;
Dans l'exemple de requête de jointure ci-dessus, nous affichons les détails de l'employé comme l'identifiant, le nom, le salaire et le département 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 le gestionnaire uniquement les employés dont le salaire est supérieur à 55000 et le département est Oracle.
Sortie :
ID EMPLOYEE | FIRST_NAME | SALAIRE | DÉPARTEMENT | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | 65500 | ORACLE | 1 | Snehdeep Kaur |
2001 | PRACHI | 55500 | ORACLE | 1 | Snehdeep Kaur |
4003 | RUCHIKA | 60000 | ORACLE | 1 | Snehdeep Kaur |
Seuls trois employés dont le salaire est supérieur à 55000 et le département est Oracle.
Exemple 5 : Exécutez une requête de jointure sur les tables Employés, Responsable et Ordinateur portable, et affichez les détails des employés, l'ID du responsable et l'ID de l'ordinateur portable.
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;
La requête ci-dessus affiche l'identifiant de l'employé, le prénom, le nom, l'identifiant du responsable et l'identifiant de l'ordinateur portable à partir des tables des employés, du responsable et de l'ordinateur portable. Nous joignons trois tables. L'identifiant de l'employé est une colonne commune entre les employés et la table des ordinateurs portables et crée une relation parent-enfant entre ces trois tables. Entre les employés et les responsables, l'identifiant du responsable de table est la colonne commune.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | MANAGERID | ID PORTABLE |
4003 | RUCHIKA | AGARWAL | 1 | L106 |
3003 | DEEPAM | JAUHARI | 3 | L104 |
4002 | ASHWINI | BAGHAT | 3 | L105 |
5001 | ARCHIT | SHARMA | 4 | L107 |
1002 | VAIBHAV | SHARMA | 5 | L102 |
Jointure externe gauche
La jointure externe gauche renverra tous les enregistrements de table sur le côté gauche de la jointure et les enregistrements correspondants pour la table sur le côté droit de la jointure. Le jeu de résultats contient null pour les enregistrements qui ne sont pas communs sur le côté droit.
Syntaxe de la jointure externe gauche :
SELECT Table_Name1.Colum_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 ;Considérez les tables existantes, qui ont les enregistrements suivants :
Tableau 1 :Employés
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 |
Tableau 2 :Gestionnaire
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# |
Tableau 3 :Ordinateur portable
ID PORTABLE | NOM | ID EMPLOYEE |
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 |
Exemples de jointure externe gauche SQL
Exemple 1 : Exécutez une requête de jointure externe gauche sur la table Employés et la table Ordinateur portable, où s'affichent l'ID de l'employé, le nom de l'employé et l'ID de l'ordinateur portable.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM EMPLOYEES E LEFT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID ;
Dans la requête ci-dessus, nous avons affiché l'identifiant de l'employé, le prénom, le nom de l'identifiant de l'ordinateur portable de la table de l'employé et le nom de la table de l'ordinateur portable et avons effectué une requête de jointure externe gauche sur ces deux tables. La requête renverra des valeurs nulles sur le côté droit de la table si les lignes ne sont pas similaires entre les tables.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | ID PORTABLE | NOM |
1001 | VAIBHAVI | MISHRA | NULL | NULL |
1002 | VAIBHAV | SHARMA | L102 | HP |
1003 | NIKHIL | VANI | NULL | NULL |
2001 | PRACHI | SHARMA | NULL | NULL |
2002 | BHAVESH | JAIN | NULL | NULL |
2003 | RUCHIKA | JAIN | NULL | NULL |
3001 | PRANOTI | SHENDE | NULL | NULL |
3002 | ANUJA | WANRE | NULL | NULL |
3003 | DEEPAM | JAUHARI | L104 | HP |
4001 | RAJESH | GOUD | NULL | NULL |
4002 | ASHWINI | BAGHAT | L105 | DELL |
4003 | RUCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARCHIT | SHARMA | L107 | DELL |
Exemple 2 : Écrivez une requête pour récupérer l'identifiant, le prénom, le nom et le salaire de l'employé à partir de la table de l'employé, jointure externe gauche sur la table de l'ordinateur portable où le salaire> 55 000.
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 ;Dans la requête ci-dessus, nous avons extrait les détails de l'employé de la table des employés et les détails de l'ordinateur portable de la table de l'ordinateur portable, mais uniquement les détails de l'employé dont le salaire est supérieur à 55 000. Nous avons effectué la requête de jointure externe gauche sur ces deux tables. La requête renverra des valeurs nulles sur le côté droit de la table si les lignes ne sont pas similaires entre les tables.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | SALAIRE | ID PORTABLE | NOM |
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 | SHENDE | 55500 | NULL | NULL |
3003 | DEEPAM | JAUHARI | 58500 | L104 | HP |
4001 | RAJESH | GOUD | 60500 | NULL | NULL |
4003 | RUCHIKA | AGARWAL | 60000 | L106 | LENOVO |
5001 | ARCHIT | SHARMA | 55500 | L107 | DELL |
Jointure externe droite
La jointure externe droite renverra tous les enregistrements de table du côté droit de la jointure et les enregistrements correspondants pour la table du côté gauche de la jointure. Le jeu de résultats contient null pour les enregistrements qui ne sont pas communs sur le côté gauche.
Syntaxe de la jointure externe droite :
SELECT Table_Name1.Colum_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 ;Exemples de jointure externe droite SQL
Exemple 1 : Exécutez une requête de jointure externe droite sur la table des employés et la table des ordinateurs portables, où s'affiche l'identifiant de l'employé, le nom de l'employé.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM EMPLOYEES E Right OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID ;Dans la requête ci-dessus, nous avons affiché l'identifiant de l'employé, le prénom, le nom de l'identifiant de l'ordinateur portable de la table de l'employé et le nom de la table de l'ordinateur portable et avons effectué la requête de jointure externe droite sur ces deux tables. La requête renverra des valeurs nulles sur le côté gauche de la table si les lignes ne sont pas similaires entre les tables.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | ID PORTABLE | NOM |
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 | RUCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARCHIT | SHARMA | L107 | DELL |
NULL | NULL | NULL | L108 | HP |
NULL | NULL | NULL | L109 | DELL |
NULL | NULL | NULL | L110 | HP |
Exemple 2 : Écrivez une requête pour récupérer l'identifiant, le prénom et le nom de l'employé dans la table de l'employé. Jointure externe droite sur la table de l'ordinateur portable où le nom de l'ordinateur portable inclut l'une des listes est Dell, HP.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FROM EMPLOYEES E RIGHT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE L.NAME IN (' DELL', 'HP');
Dans la requête ci-dessus, nous avons affiché les détails des employés à partir des détails de l'ordinateur portable de la table de l'employé sur la table de l'ordinateur portable. Nous avons effectué la requête de jointure externe droite sur ces deux tables uniquement cet employé dont le nom de l'ordinateur portable inclut l'une des listes est Dell et HP. La requête renverra des valeurs nulles sur le côté gauche de la table si les lignes ne sont pas similaires entre les tables.
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | ID PORTABLE | NOM |
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 |
Jointure externe complète
La jointure externe complète fusionne le résultat des jointures externes gauche et droite. La jointure externe complète est identique à la jointure croisée. Les jointures externes complètes renvoient la sortie, où les lignes sont communes ou peu communes entre les tables.
Syntaxe de la jointure externe complète :
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLE1 FULL JOIN TABLE2 ;
Exemple 1 : Écrivez une requête pour afficher l'identifiant de l'employé, le prénom, le nom de l'identifiant du responsable de la table de l'employé jointure externe complète Table du responsable où le salaire de l'employé est supérieur à 65 000.
SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, M.MANAGERID FROM EMPLOYEES FULL JOIN MANAGER M WHERE SALARY> 65000 ;
Dans la requête ci-dessus, nous avons affiché les détails des employés et les détails du responsable à partir de la table des employés et du responsable où le salaire de l'employé est supérieur à 65 000 en utilisant une jointure complète. Au complet, joignez chaque ligne de la table de l'employé à chaque ligne de la table du responsable, c'est-à-dire que le produit cartésien se produira. M * N
Sortie :
ID EMPLOYEE | FIRST_NAME | LAST_NAME | 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 |
Comme nous pouvons le voir, l'identifiant d'employé 1001 se joint à chaque identifiant de responsable, de même avec l'identifiant d'employé 2002.
Exemple 2 : Exécutez une requête de jointure externe complète sur la table des employés et la table des ordinateurs portables, où le salaire de l'employé est supérieur à 60 000 et l'emplacement de l'employé est Pune.
SELECT LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY FROM LAPTOP FULL JOIN EMPLOYEES E WHERE SALARY> 60000 AND CITY ='PUNE';
Dans la requête ci-dessus, nous affichons l'identifiant de l'ordinateur portable, l'identifiant de l'employé, le prénom, le salaire et la ville de l'ordinateur portable, rejoignez les employés uniquement ceux dont le salaire est supérieur à 60000 et dont la ville est Pune. Si les deux conditions correspondent à l'employé uniquement, l'enregistrement est récupéré.
Sortie :
Jointure croisée
Les jointures croisées en SQL ne sont rien d'autre qu'un produit cartésien. Chaque ligne d'un tableau est combinée ou fusionnée avec chaque ligne de l'autre tableau. M * N est une jointure croisée
Syntaxe de la jointure croisée :
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLE1 CROSS JOIN TABLE2 ;
Exemple 1 : Écrivez une requête pour effectuer une opération de jointure croisée sur la table des employés et la table des responsables où le prénom de l'employé commence par A
SELECT EMPLOYEEID, FIRST_NAME, M.MANAGERID FROM EMPLOYEES CROSS JOIN MANAGER M WHERE FIRST_NAME LIKE 'A%' ;
Dans l'exemple de requête de jointure externe complète ci-dessus, nous avons récupéré les détails de l'employé et les détails du responsable de la table des employés et de la table des responsables, mais uniquement les enregistrements où le prénom de l'employé commence par la lettre "A".
Sortie :
Le résultat montre que l'identifiant de l'employé est une jointure croisée avec chaque ligne d'identifiant du responsable.
M * N Ici, M =3; ID d'employé à partir des tables d'employés
N =5 ; identifiant du responsable de la table des responsables 3 * 5 =15 lignes.
Exemple 2 : Écrivez une requête pour effectuer une opération de jointure croisée sur la table des ordinateurs portables et la table des employés où le salaire des employés est supérieur à 58 000 et Mumbai.
SELECT LAPTOPID, NAME, E.EMPLOYEEID FROM LAPTOP CROSS JOIN EMPLOYEES E WHERE SALARY> 58000 AND CITY ='MUMBAI';
Dans la requête ci-dessus, nous avons affiché l'identifiant de l'ordinateur portable, le nom et l'identifiant de l'employé de la table de l'ordinateur portable pour effectuer une opération de jointure croisée sur la table des employés où le salaire de l'employé est supérieur à 58 000 et la ville est Pune. La jointure croisée fonctionne comme M * N.
Sortie :