MariaDB - Katıl

Önceki tartışmalarda ve örneklerde, tek bir tablodan almayı veya birden çok kaynaktan birden çok değeri almayı inceledik. Gerçek dünyadaki veri işlemlerinin çoğu çok daha karmaşıktır ve birden çok tablodan toplama, karşılaştırma ve alma gerektirir.

JOINsiki veya daha fazla tablonun tek bir nesnede birleştirilmesine izin verir. SELECT, UPDATE ve DELETE ifadeleri aracılığıyla kullanılırlar.

Aşağıda gösterildiği gibi bir JOIN kullanan bir ifadenin genel sözdizimini gözden geçirin -

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

JOINS için örtük birleştirmeler kullanılan ve anahtar sözcük kullanılmayan eski sözdizimine dikkat edin. Bir birleştirme elde etmek için bir WHERE yan tümcesi kullanmak mümkündür, ancak anahtar kelimeler en iyi okunabilirlik, bakım ve en iyi uygulamalar için işe yarar.

BİRLEŞTİRMELER, sol birleştirme, sağ birleştirme veya iç birleştirme gibi birçok biçimde gelir. Çeşitli birleştirme türleri, paylaşılan değerlere veya özelliklere göre farklı toplama türleri sunar.

Ya komut isteminde ya da bir PHP betiği ile bir JOIN çalıştırın.

Komut İstemi

Komut isteminde standart bir ifade kullanın -

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               |
+-------------+----------------+-----------------+

JOIN Kullanan PHP Script

Kullan mysql_query() bir birleştirme işlemi gerçekleştirme işlevi -

<?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);
?>

Başarılı veri alımında aşağıdaki çıktıyı göreceksiniz -

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