Maison >base de données >tutoriel mysql >Exemples détaillés de l'application de Join dans Mysql
Dans ce chapitre, nous allons vous présenter comment utiliser JOIN de MySQL pour interroger des données dans deux tables ou plus. Les amis qui souhaitent rejoindre MySQL devraient apprendre ensemble
Dans les chapitres précédents, nous avons appris à lire des données dans un tableau. C'est relativement simple, mais c'est souvent nécessaire dans les applications réelles. plusieurs tables de données.
Dans ce chapitre, nous vous présenterons comment utiliser JOIN de MySQL pour interroger des données dans deux tables ou plus.
Vous pouvez utiliser la jointure de Mysql dans les instructions SELECT, UPDATE et DELETE pour combiner plusieurs requêtes de table.
Ci-dessous, nous démontrerons la différence entre l'utilisation de MySQL LEFT JOIN et JOIN.
Utilisez JOIN dans l'invite de commande
Nous avons deux tables tcount_tbl et runoob_tbl dans la base de données RUNOOB. Les données des deux tables de données sont les suivantes :
Exemple
Essayez l'exemple suivant :
root@host# mysql -u root -p password; Enter password:******* mysql> use RUNOOB; Database changed mysql> SELECT * FROM tcount_tbl; +-----------------+----------------+ | runoob_author | runoob_count | +-----------------+----------------+ | mahran | 20 | | mahnaz | NULL | | Jen | NULL | | Gill | 20 | | John Poul | 1 | | Sanjay | 1 | +-----------------+----------------+ 6 rows in set (0.01 sec) mysql> SELECT * from runoob_tbl; +-------------+----------------+-----------------+-----------------+ | runoob_id | runoob_title | runoob_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>
Ensuite, nous utiliserons JOIN de MySQL pour connecter les deux ci-dessus tables à lire. La valeur du champ runoob_count correspondant au champ runoob_author dans la table runoob_tbl de la table tcount_tbl :
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count -> FROM runoob_tbl a, tcount_tbl b -> WHERE a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | runoob_id | runoob_author | runoob_count | +-------------+-----------------+----------------+ | 1 | John Poul | 1 | | 3 | Sanjay | 1 | +-------------+-----------------+----------------+ 2 rows in set (0.01 sec) mysql>
Utiliser JOIN dans le script PHP
PHP Utilisez la fonction mysql_query() pour exécuter une instruction SQL. Vous pouvez utiliser la même instruction SQL ci-dessus comme paramètre de mysql_query() fonction.
Essayez l'exemple suivant :<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author'; mysql_select_db('RUNOOB'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Author:{$row['runoob_author']} <br> ". "Count: {$row['runoob_count']} <br> ". "Tutorial ID: {$row['runoob_id']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>
MySQL LEFT JOIN
La jointure gauche MySQL est différente de la jointure. MySQL LEFT JOIN lira toutes les données du tableau de gauche, même s'il n'y a pas de données correspondantes dans le tableau de droite. ExempleEssayez l'exemple suivant pour comprendre l'application de MySQL LEFT JOIN :root@host# mysql -u root -p password; Enter password:******* mysql> use RUNOOB; Database changed mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count -> FROM runoob_tbl a LEFT JOIN tcount_tbl b -> ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | runoob_id | runoob_author | runoob_count | +-------------+-----------------+----------------+ | 1 | John Poul | 1 | | 2 | Abdul S | NULL | | 3 | Sanjay | 1 | +-------------+-----------------+----------------+ 3 rows in set (0.02 sec)LEFT JOIN est utilisé dans l'exemple ci-dessus, et cette instruction lira le table de données à gauche Toutes les données de champ sélectionnées de runoob_tbl, même s'il n'y a pas de valeur de champ runoob_author correspondante dans la table de droite tcount_tbl.
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!