Учебники

MariaDB — Присоединяйтесь

В предыдущих обсуждениях и примерах мы изучали извлечение из одной таблицы или извлечение нескольких значений из нескольких источников. Большинство реальных операций с данными гораздо более сложны и требуют агрегирования, сравнения и извлечения из нескольких таблиц.

СОЕДИНЕНИЯ позволяют объединять две или более таблиц в один объект. Они используются через операторы SELECT, UPDATE и DELETE.

Просмотрите общий синтаксис оператора, использующего JOIN, как показано ниже:

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

Обратите внимание, что старый синтаксис для JOINS использовал неявные соединения, а не ключевые слова. Можно использовать предложение WHERE для достижения объединения, но ключевые слова работают лучше всего для удобочитаемости, обслуживания и рекомендаций.

Соединения бывают разных форм, таких как левое соединение, правое соединение или внутреннее соединение. Различные типы объединения предлагают различные типы агрегации на основе общих значений или характеристик.

Используйте JOIN в командной строке или с помощью скрипта PHP.

Командная строка

В командной строке просто используйте стандартную инструкцию —

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

PHP скрипт с использованием JOIN

Используйте функцию 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> ".
         "Count: {$row['product_count']} <br> ".
         "Product ID: {$row['product_id']} <br> ".
         "--------------------------------<br>";
   }

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

При успешном извлечении данных вы увидите следующий вывод: