Using Joins
Introduction
Dans les chapitres précédents, nous avons obtenu des données d'une seule table à la fois. C'est suffisant pour les prises simples, mais dans la plupart des utilisations réelles de MySQL, vous aurez souvent besoin d'obtenir des données de plusieurs tables dans une seule requête.
Vous pouvez utiliser plusieurs tables dans une seule requête SQL. L'acte de joindre dans MySQL fait référence à la fusion de deux ou plusieurs tables en une seule.
Vous pouvez utiliser des JOINS dans les instructions SELECT, UPDATE et DELETE pour joindre les tables MySQL. Nous allons voir un exemple de LEFT JOIN qui est également différent du simple JOIN MySQL.
Using Joins at the Command Prompt
Supposons que nous ayons deux tables tcount_tbl et tutorials_tbl, dans TUTORIALS. Maintenant, regardez les exemples donnés ci-dessous.
Exemple
Les exemples suivants :
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * FROM tcount_tbl;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahran | 20 |
| mahnaz | NULL |
| Jen | NULL |
| Gill | 20 |
| John Poul | 1 |
| Sanjay | 1 |
+-----------------+----------------+
6 rows in set (0.01 sec)
mysql> SELECT * from tutorials_tbl;
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 1 | Learn PHP | John Poul | 2007-05-24 |
| 2 | Learn MySQL | Abdul S | 2007-05-24 |
| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.00 sec)
mysql>
Maintenant nous pouvons écrire une requête SQL pour joindre ces deux tables. Cette requête sélectionnera tous les auteurs de la table tutorials_tbl et récupérera le nombre correspondant de tutoriels de la table tcount_tbl.
mysql> SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
-> FROM tutorials_tbl a, tcount_tbl b
-> WHERE a.tutorial_author = b.tutorial_author;
+-------------+-----------------+----------------+
| tutorial_id | tutorial_author | tutorial_count |
+-------------+-----------------+----------------+
| 1 | John Poul | 1 |
| 3 | Sanjay | 1 |
+-------------+-----------------+----------------+
2 rows in set (0.01 sec)
mysql>
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !