Maison > base de données > tutoriel mysql > Comment convertir une sous-requête en jointure gauche ?

Comment convertir une sous-requête en jointure gauche ?

王林
Libérer: 2023-08-22 21:57:06
avant
1520 Les gens l'ont consulté

Comment convertir une sous-requête en jointure gauche ?

Pour que ce soit compréhensible, nous utilisons les données du tableau suivant −

mysql> Select * from customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+
4 rows in set (0.00 sec)

mysql> Select * from reserve;
+------+------------+
| ID   | Day        |
+------+------------+
| 1    | 2017-12-30 |
| 2    | 2017-12-28 |
| 2    | 2017-12-25 |
| 1    | 2017-12-24 |
| 3    | 2017-12-26 |
+------+------------+
5 rows in set (0.00 sec)
Copier après la connexion

Maintenant, ci-dessous se trouve une sous-requête qui trouvera les noms de tous les clients qui n'ont réservé aucune voiture.

mysql> Select Name from customers where customer_id NOT IN (Select id From reserve);
+----------+
| Name     |
+----------+
| Virender |
+----------+
1 row in set (0.00 sec)
Copier après la connexion

Maintenant, avec les étapes suivantes, nous pouvons convertir la sous-requête ci-dessus en une RIGHT JOIN −

  • Déplacez la table nommée 'Reserve' dans la sous-requête vers la clause FROM et utilisez LEFT JOIN pour la joindre à la table 'Clients' rejoindre.
  • La clause WHERE compare la colonne customer_id aux identifiants renvoyés par la sous-requête. Par conséquent, l'expression IN est convertie en une comparaison directe explicite entre les colonnes id des deux tables de la clause FROM.
  • Dans la clause WHERE, limitez la sortie aux lignes avec des valeurs NULL dans la table 'Réserve'.
mysql> SELECT Name from customers LEFT JOIN reserve ON customer_id = Id WHERE Id IS NULL;
+----------+
| Name     |
+----------+
| Virender |
+----------+
1 row in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal