Mariadb 简明教程
MariaDB - Join
在之前的讨论和示例中,我们从单表中进行检索,或从多源中检索多个值。大多数实际数据操作要复杂得多,需要从多张表中进行聚合、比较和检索。
In previous discussions and examples, we examined retrieving from a single table, or retrieving multiple values from multiple sources. Most real-world data operations are much more complex, requiring aggregation, comparison, and retrieval from multiple tables.
JOINs 允许将两个或多个表合并为单个对象。它们通过 SELECT、UPDATE 和 DELETE 语句使用。
JOINs allow merging of two or more tables into a single object. They are employed through SELECT, UPDATE, and DELETE statements.
复习如下所示使用 JOIN 的语句的一般语法 −
Review the general syntax of a statement employing a JOIN as shown below −
SELECT column
FROM table_name1
INNER JOIN table_name2
ON table_name1.column = table_name2.column;
请注意,用于 JOIN 的旧语法使用隐式连接且没有关键字。可以使用 WHERE 子句实现连接,但关键字最适合可读性、可维护性和最佳实践。
Note the old syntax for JOINS used implicit joins and no keywords. It is possible to use a WHERE clause to achieve a join, but keywords work best for readability, maintenance, and best practices.
JOIN 有多种形式,例如左连接、右连接或内连接。各种联接类型基于共享值或特征提供不同类型的聚合。
JOINs come in many forms such as a left join, right join, or inner join. Various join types offer different types of aggregation based on shared values or characteristics.
在命令提示符处或使用 PHP 脚本使用 JOIN。
Employ a JOIN either at the command prompt or with a PHP script.
The Command Prompt
在命令提示符处,只需使用标准语句 −
At the command prompt, simply use a standard statement −
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 Script Using JOIN
使用 mysql_query() 函数执行联接操作-
Use the mysql_query() function to perform a join operation −
<?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);
?>
当数据检索成功时,您将看到以下输出 −
On successful data retrieval, you will see the following output −
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