Utilisation de Mysql Join
Dans les chapitres précédents, nous avons appris à lire les données d'une table. C'est relativement simple, mais dans les applications réelles, il est souvent nécessaire de lire les données de plusieurs tables de données. Lire les 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 tutoriels_tbl dans la base de données TUTORIALS. Les données des deux tables de données sont les suivantes :
Essayez l'exemple suivant :
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>
Ensuite, nous utilisons JOIN de MySQL pour connecter les deux tables ci-dessus afin de lire tous les champs tutoriel_auteur dans le table tutoriels_tbl. La valeur du champ tutoriel_count correspondant à 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>
Utilisez JOIN dans le script PHP
Utilisez la fonction mysql_query() en PHP pour exécuter l'instruction SQL. utilisez la même instruction SQL ci-dessus comme paramètre de la fonction mysql_query().
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.tutorial_id, a.tutorial_author, b.tutorial_count FROM tutorials_tbl a, tcount_tbl b WHERE a.tutorial_author = b.tutorial_author';mysql_select_db('TUTORIALS');$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['tutorial_author']} <br> ". "Count: {$row['tutorial_count']} <br> ". "Tutorial ID: {$row['tutorial_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 de la table de données de gauche, même s'il n'y a pas de données correspondantes dans la table de droite.
Exemple
尝试以下实例,理解MySQL LEFT JOIN的应用: root@host# mysql -u root -p password;Enter password:*******mysql> use TUTORIALS;Database changedmysql> SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count -> FROM tutorials_tbl a LEFT JOIN tcount_tbl b -> ON a.tutorial_author = b.tutorial_author;+-------------+-----------------+----------------+| tutorial_id | tutorial_author | tutorial_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. Cette instruction lira toutes les données de champ sélectionnées dans la table de données de gauche tutoriels_tbl, même s'il n'y a pas de données correspondantes dans la droite. valeur du champ table tcount_tbl tutoriel_author.
【Recommandations associées】
1. Recommandation spéciale : "php Programmer Toolbox" version V0.1 Télécharger
2.Tutoriel vidéo en ligne MySQL gratuit
3 Ces choses sur la conception de bases de données
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!