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 = '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 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!