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

Types de SQL JOIN

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 :

  1. Jointure interne
  2. Jointure externe gauche
  3. Jointure externe droite
  4. Jointure externe complète
  5. 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 :