Mariadb-join

提供:Dev Guides
移動先:案内検索

MariaDB-参加

前の議論と例では、単一のテーブルからの取得、または複数のソースからの複数の値の取得について検討しました。 ほとんどの実際のデータ操作ははるかに複雑で、集約、比較、および複数のテーブルからの取得が必要です。

*JOIN* を使用すると、2つ以上のテーブルを1つのオブジェクトにマージできます。 これらは、SELECT、UPDATE、およびDELETEステートメントを通じて使用されます。

以下に示すように、JOINを使用するステートメントの一般的な構文を確認します-

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

JOINSの古い構文では暗黙的な結合が使用され、キーワードは使用されていません。 WHERE句を使用して結合を実現することは可能ですが、キーワードは読みやすさ、保守、およびベストプラクティスに最適です。

JOINには、左結合、右結合、内部結合など、多くの形式があります。 さまざまな結合タイプは、共有値または特性に基づいてさまざまなタイプの集約を提供します。

コマンドプロンプトまたはPHPスクリプトでJOINを使用します。

コマンドプロンプト

コマンドプロンプトで、単に標準的なステートメントを使用します-

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を使用したPHPスクリプト

結合操作を実行するには、* mysql_query()*関数を使用します-

<?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&gt ".
         "Count: {$row['product_count']} <br&gt ".
         "Product ID: {$row['product_id']} <br&gt ".
         "--------------------------------<br&gt";
   }

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

データの取得に成功すると、次の出力が表示されます-

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