Heim  >  Artikel  >  Datenbank  >  Detaillierte Beispiele für die Anwendung von Join in MySQL

Detaillierte Beispiele für die Anwendung von Join in MySQL

怪我咯
怪我咯Original
2017-04-30 10:18:451249Durchsuche

In diesem Kapitel stellen wir Ihnen vor, wie Sie MySQLs JOIN verwenden, um Daten in zwei oder mehr Tabellen abzufragen . Freunde, die daran interessiert sind, an MySQL teilzunehmen, sollten gemeinsam lernenIn den vorherigen Kapiteln haben wir gelernt, wie man Daten in einer Tabelle liest. Dies ist relativ einfach, wird jedoch häufig in realen Anwendungen benötigt mehrere Datentabellen.


In diesem Kapitel stellen wir Ihnen vor, wie Sie MySQLs JOIN verwenden, um Daten in zwei oder mehr Tabellen abzufragen.

Sie können den Join von MySQL in SELECT-, UPDATE- und DELETE-Anweisungen verwenden, um mehrere Tabellenabfragen zu kombinieren.

Nachfolgend zeigen wir den Unterschied zwischen der Verwendung von MySQL LEFT JOIN und JOIN.

Verwenden Sie JOIN in der Eingabeaufforderung Wir haben zwei Tabellen tcount_tbl und runoob_tbl in der RUNOOB-Datenbank. Die Daten der beiden Datentabellen lauten wie folgt:

Beispiel

Versuchen Sie das folgende Beispiel:

Als nächstes verwenden wir MySQLs JOIN, um die beiden oben genannten zu verbinden Tabellen zum Lesen. Der Wert des Feldes runoob_count, das dem Feld runoob_author in der Tabelle runoob_tbl in der Tabelle tcount_tbl entspricht:
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>

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>

Verwenden Sie JOIN im PHP-Skript PHP Verwenden Sie die Funktion

mysql_query

(), um eine SQL-Anweisung auszuführen. Sie können dieselbe SQL-Anweisung oben als Parameter von mysql_query() Funktion. Versuchen Sie das folgende Beispiel:

MySQL LEFT JOIN
<?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 unterscheidet sich von Join. MySQL LEFT JOIN liest alle Daten in der linken Datentabelle, auch wenn in der rechten Tabelle keine entsprechenden Daten vorhanden sind. Beispiel

Versuchen Sie das folgende Beispiel, um die Anwendung von MySQL LEFT JOIN zu verstehen:

LEFT JOIN wird im obigen Beispiel verwendet, und diese Anweisung liest das Datentabelle auf der linken Seite Alle ausgewählten Felddaten von runoob_tbl, auch wenn in der rechten Tabelle tcount_tbl kein entsprechender runoob_author-Feldwert vorhanden ist.

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)

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für die Anwendung von Join in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn