Maison  >  Article  >  base de données  >  Exemples détaillés de l'application de Join dans Mysql

Exemples détaillés de l'application de Join dans Mysql

怪我咯
怪我咯original
2017-04-30 10:18:451211parcourir

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 = &#39;localhost:3036&#39;;
$dbuser = &#39;root&#39;;
$dbpass = &#39;rootpassword&#39;;
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die(&#39;Could not connect: &#39; . mysql_error());
}
$sql = &#39;SELECT a.runoob_id, a.runoob_author, b.runoob_count
  FROM runoob_tbl a, tcount_tbl b
  WHERE a.runoob_author = b.runoob_author&#39;;
mysql_select_db(&#39;RUNOOB&#39;);
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
 die(&#39;Could not get data: &#39; . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
 echo "Author:{$row[&#39;runoob_author&#39;]} <br> ".
   "Count: {$row[&#39;runoob_count&#39;]} <br> ".
   "Tutorial ID: {$row[&#39;runoob_id&#39;]} <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.

Exemple

Essayez 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!

Déclaration:
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