MariaDB - Gabung

Dalam diskusi dan contoh sebelumnya, kami memeriksa pengambilan dari satu tabel, atau mengambil beberapa nilai dari berbagai sumber. Kebanyakan operasi data dunia nyata jauh lebih kompleks, membutuhkan agregasi, perbandingan, dan pengambilan dari beberapa tabel.

JOINsmemungkinkan penggabungan dua tabel atau lebih menjadi satu objek. Mereka digunakan melalui pernyataan SELECT, UPDATE, dan DELETE.

Tinjau sintaks umum dari pernyataan yang menggunakan JOIN seperti yang ditunjukkan di bawah ini -

SELECT column
FROM table_name1
INNER JOIN table_name2
ON table_name1.column = table_name2.column;

Perhatikan sintaks lama untuk JOINS yang digunakan gabungan implisit dan tanpa kata kunci. Anda dapat menggunakan klausa WHERE untuk mencapai gabungan, tetapi kata kunci berfungsi paling baik untuk keterbacaan, pemeliharaan, dan praktik terbaik.

Gabung datang dalam berbagai bentuk seperti gabungan kiri, gabungan kanan, atau gabungan dalam. Berbagai jenis gabungan menawarkan berbagai jenis agregasi berdasarkan nilai atau karakteristik bersama.

Gunakan JOIN baik pada command prompt atau dengan skrip PHP.

Prompt Perintah

Pada prompt perintah, cukup gunakan pernyataan standar -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed

mysql> SELECT products.ID_number, products.Nomenclature, inventory.inventory_ct
   FROM products
   INNER JOIN inventory
   ON products.ID_numbeer = inventory.ID_number;
+-------------+----------------+-----------------+
| ID_number   | Nomenclature   | Inventory Count |
+-------------+----------------+-----------------+
| 12345       | Orbitron 4000  | 150             |
+-------------+----------------+-----------------+
| 12346       | Orbitron 3000  | 200             |
+-------------+----------------+-----------------+
| 12347       | Orbitron 1000  | 0               |
+-------------+----------------+-----------------+

Script PHP Menggunakan JOIN

Menggunakan mysql_query() berfungsi untuk melakukan operasi gabungan -

<?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.product_id, a.product_manufacturer, b.product_count   
      FROM products_tbl a, pcount_tbl b 
      WHERE a.product_manufacturer = b.product_manufacturer';

   mysql_select_db('PRODUCTS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Manufacturer:{$row['product_manufacturer']} <br> ".
         "Count: {$row['product_count']} <br> ".
         "Product ID: {$row['product_id']} <br> ".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Pada pengambilan data yang berhasil, Anda akan melihat output berikut -

ID Number: 12345
Nomenclature: Orbitron 4000
Inventory Count: 150
--------------------------------------
ID Number: 12346
Nomenclature: Orbitron 3000
Inventory Count: 200
--------------------------------------
ID Number: 12347
Nomenclature: Orbitron 1000
Inventory Count: 0
--------------------------------------
mysql> Fetched data successfully