Tutorial MySQL Join

Sejauh ini kita hanya mendapatkan data dari satu meja pada suatu waktu. Ini bagus untuk sederhana membutuhkan, tapi di sebagian besar dunia nyata penggunaan MySQL Anda akan sering perlu untuk mendapatkan data dari beberapa tabel dalam satu query tunggal.

Anda dapat menggunakan beberapa tabel dalam query tunggal SQL Anda. Tindakan bergabung di MySQL mengacu pada menghancurkan dua atau lebih tabel ke tabel tunggal.

Anda dapat menggunakan JOINdi SELECT, UPDATE dan DELETE laporan untuk bergabung tabel MySQL. Kita akan melihat contoh KIRI JOINjuga yang berbeda dari MySQL yang sederhana JOIN .

Menggunakan Join di Command Prompt:

Misalkan kita memiliki dua tabel tcount_tbl dan tutorials_tbl dalam tutorial. Sebuah daftar lengkap diberikan di bawah ini :

Contoh:

Coba contoh berikut :

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>

Sekarang kita dapat menulis sebuah query SQL untuk bergabung dengan dua tabel. Query ini akan memilih semua penulis dari tutorials_tbl meja dan akan jumlah pengambilan yang sesuai tutorial dari 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>

Menggunakan JOIN dalam Script PHP:

Anda dapat menggunakan salah satu query SQL di atas disebutkan dalam naskah PHP. Anda hanya harus lulus query SQL ke fungsi PHP mysql_query () dan kemudian Anda akan mengambil hasil dalam cara biasa.

Contoh:

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.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 KIRI JOIN:

Sebuah MySQL kiri bergabung adalah berbeda dari yang sederhana bergabung. Sebuah MySQL KIRI JOIN memberikan pertimbangan tambahan ke meja yang ada di sebelah kiri.

Jika saya melakukan KIRI JOIN, saya mendapatkan semua catatan yang sesuai dengan cara yang sama dan SELAIN saya mendapatkan catatan tambahan untuk setiap record yang tak tertandingi dalam tabel kiri join- sehingga memastikan (dalam contoh saya) bahwa setiap PENULIS mendapat menyebutkan :

Contoh:

Coba contoh berikut untuk memahami LEFT JOIN:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> 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)

Anda akan perlu untuk melakukan praktik lebih untuk menjadi akrab dengan JOIN. Ini adalah sebuah konsep tetapi kompleks di MySQL / SQL dan akan menjadi lebih jelas saat melakukan contoh-contoh nyata.

Leave a Reply

Your email address will not be published. Required fields are marked *