Tutorial Menggunakan koneksi Mysql Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari Gunakan INNER JOIN command prompt,MySQL LEFT JOIN,MySQL RIGHT JOIN,BERGABUNG digunakan dalam skrip PHP,
Dalam bab-bab sebelumnya, kita telah belajar bahwa jika membaca data dalam tabel, yang relatif sederhana, tetapi sering perlu membaca data dari beberapa tabel dalam aplikasi nyata.
bab ini kami akan menunjukkan bagaimana menggunakan MySQL BERGABUNG query data dalam dua atau lebih tabel.
Anda dapat menggunakan Mysql di SELECT, UPDATE, dan DELETE laporan ke BERGABUNG bersama query multi-tabel.
BERGABUNG menurut fungsinya dibagi menjadi tiga kategori berikut:
struktur database dan data yang digunakan dalam bagian ini Download: w3big.sql .
Kami memiliki dua tabel tcount_tbl dan w3big_tbl dalam database w3big. Dua Data Data tabel adalah sebagai berikut:
Coba contoh berikut:
root@host# mysql -u root -p password; Enter password:******* mysql> use w3big; Database changed mysql> SELECT * FROM tcount_tbl; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahran | 20 | | mahnaz | NULL | | Jen | NULL | | Gill | 20 | | John Poul | 1 | | Sanjay | 1 | +-----------------+----------------+ 6 rows in set (0.01 sec) mysql> SELECT * from w3big_tbl; +-------------+----------------+-----------------+-----------------+ | w3big_id | w3big_title | w3big_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>
Selanjutnya kita datang untuk menghubungkan lebih dari dua tabel dalam tabel untuk membaca w3big_tbl semua bidang w3big_author nilai bidang w3big_count sesuai dengan tabel di tcount_tbl menggunakan MySQL INNER JOIN (penggunaan dapat dihilangkan INNER JOIN, efek yang sama):
mysql> SELECT a.w3big_id, a.w3big_author, b.w3big_count FROM w3big_tbl a INNER JOIN tcount_tbl b ON a.w3big_author = b.w3big_author; +-----------+---------------+--------------+ | w3big_id | w3big_author | w3big_count | +-----------+---------------+--------------+ | 1 | John Poul | 1 | | 3 | Sanjay | 1 | +-----------+---------------+--------------+ 2 rows in set (0.00 sec)
Di atas pernyataan SQL adalah setara dengan:
mysql> SELECT a.w3big_id, a.w3big_author, b.w3big_count FROM w3big_tbl a, tcount_tbl b WHERE a.w3big_author = b.w3big_author; +-------------+-----------------+----------------+ | w3big_id | w3big_author | w3big_count | +-------------+-----------------+----------------+ | 1 | John Poul | 1 | | 3 | Sanjay | 1 | +-------------+-----------------+----------------+ 2 rows in set (0.01 sec) mysql>
MySQL meninggalkan bergabung dan bergabung berbeda. MySQL LEFT JOIN akan membaca semua data tabel data di sebelah kiri, sisi kanan meja bahkan jika tidak ada data yang sesuai.
Coba contoh berikut, meja kiri w3big_tbl, tcount_tbl tabel kanan, untuk memahami MySQL KIRI BERGABUNG aplikasi:
root@host# mysql -u root -p password; Enter password:******* mysql> use w3big; Database changed mysql> SELECT a.w3big_id, a.w3big_author, b.w3big_count FROM w3big_tbl a LEFT JOIN tcount_tbl b ON a.w3big_author = b.w3big_author; +-------------+-----------------+----------------+ | w3big_id | w3big_author | w3big_count | +-------------+-----------------+----------------+ | 1 | John Poul | 1 | | 2 | Abdul S | NULL | | 3 | Sanjay | 1 | +-------------+-----------------+----------------+ 3 rows in set (0.02 sec)
Contoh di atas menggunakan LEFT JOIN, pernyataan membaca semua data lapangan yang dipilih ke kiri w3big_tbl tabel data, bahkan jika tidak ada tangan kanan tcount_tbl tabel sesuai nilai bidang w3big_author.
MySQL RIGHT JOIN membaca semua data di sebelah kanan tabel data di sisi kiri dari meja bahkan jika tidak ada data yang sesuai.
Coba contoh berikut, tcount_tbl meja kiri, w3big_tbl tabel kanan, untuk memahami MySQL RIGHT JOIN aplikasi:
root@host# mysql -u root -p password; Enter password:******* mysql> use w3big; Database changed mysql> SELECT b.w3big_id, b.w3big_author, a.w3big_count FROM tcount_tbl a RIGHT JOIN w3big_tbl b ON a.w3big_author = b.w3big_author; +-------------+-----------------+----------------+ | w3big_id | w3big_author | w3big_count | +-------------+-----------------+----------------+ | 1 | John Poul | 1 | | 2 | Abdul S | NULL | | 3 | Sanjay | 1 | +-------------+-----------------+----------------+ 3 rows in set (0.02 sec)
Contoh di atas menggunakan KANAN JOIN, pernyataan membaca semua data lapangan yang dipilih ke kanan w3big_tbl tabel data, bahkan jika tidak ada tabel terkait di tcount_tbl kiri nilai bidang w3big_author.
Penggunaan PHP mysql_query () fungsi untuk mengeksekusi pernyataan SQL, Anda dapat menggunakan lebih dari pernyataan SQL yang sama seperti mysql_query () parameter fungsi.
Coba contoh berikut:
<?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.w3big_id, a.w3big_author, b.w3big_count FROM w3big_tbl a INNER JOIN tcount_tbl b ON a.w3big_author = b.w3big_author'; mysql_select_db('w3big'); $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['w3big_author']} <br> ". "Count: {$row['w3big_count']} <br> ". "Tutorial ID: {$row['w3big_id']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>