MariaDB - Tham gia
Trong các cuộc thảo luận và ví dụ trước đây, chúng tôi đã kiểm tra việc truy xuất từ một bảng hoặc truy xuất nhiều giá trị từ nhiều nguồn. Hầu hết các hoạt động dữ liệu trong thế giới thực phức tạp hơn nhiều, đòi hỏi phải tổng hợp, so sánh và truy xuất từ nhiều bảng.
JOINscho phép hợp nhất hai hoặc nhiều bảng thành một đối tượng duy nhất. Chúng được sử dụng thông qua các câu lệnh SELECT, UPDATE và DELETE.
Xem lại cú pháp chung của câu lệnh sử dụng JOIN như hình dưới đây:
SELECT column
FROM table_name1
INNER JOIN table_name2
ON table_name1.column = table_name2.column;
Lưu ý rằng cú pháp cũ cho JOINS được sử dụng các phép nối ngầm và không có từ khóa. Có thể sử dụng mệnh đề WHERE để đạt được liên kết, nhưng từ khóa hoạt động tốt nhất để dễ đọc, duy trì và các phương pháp hay nhất.
Tham gia có nhiều dạng như tham gia trái, tham gia phải hoặc tham gia bên trong. Các kiểu nối khác nhau cung cấp các kiểu tổng hợp khác nhau dựa trên các giá trị hoặc đặc điểm được chia sẻ.
Sử dụng JOIN tại dấu nhắc lệnh hoặc với một tập lệnh PHP.
Dấu nhắc lệnh
Tại dấu nhắc lệnh, chỉ cần sử dụng một câu lệnh chuẩ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 |
+-------------+----------------+-----------------+
Tập lệnh PHP sử dụng JOIN
Sử dụng mysql_query() chức năng để thực hiện một hoạt động nối -
<?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);
?>
Khi truy xuất dữ liệu thành công, bạn sẽ thấy kết quả sau:
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