sql join on关联查询语句用法
加入是用来从多个表中的行结合起来。每当在一个SQL语句的FROM子句中列出的两个或多个表进行联接。
有不同类型的联接。让我们看看几个例子。
内部联接(简单的加入)
机会是,你已经写了一个SQL语句,使用一个内部联接。这是最常见的类型,加入。内部联接满足联接条件的多个表返回所有行。
| 代码如下 | |
|
SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date |
|
这条SQL语句将返回从那里是一个匹配的供应商和订单表supplier_id价值的供应商和订单表的所有行。
让我们看看一些数据解释工作的内在联结如何:
我们有两个领域的供应商(supplier_id和supplier_名称)表。
它包含以下数据:
| supplier_id | supplier_name |
|---|---|
| 10000 | IBM |
| 10001 | Hewlett Packard |
| 10002 | Microsoft |
| 10003 | NVIDIA |
We have another table called orders with three fields (order_id, supplier_id, and order_date).
It contains the following data:
| order_id | supplier_id | order_date |
|---|---|---|
| 500125 | 10000 | 2003/05/12 |
| 500126 | 10001 | 2003/05/13 |
运行如下代码
| 代码如下 | |
|
SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date |
|
结果
| supplier_id | name | order_date |
|---|---|---|
| 10000 | IBM | 2003/05/12 |
| 10001 | Hewlett Packard | 2003/05/13 |
Outer Join
先看一个实例
| 代码如下 | |
|
select suppliers.supplier_id, suppliers.supplier_name, orders.order_date |
|
这条SQL语句将返回所有行从供应商表,并只有那些从订单表中的行的联接字段相等。
(+),后orders.supplier_id场表示,如果在供应商的表supplier_id价值不存在订单表,订单表中的各个领域将作为<NULL>显示的结果集。
上面的SQL语句也可以写成如下形式:
| 代码如下 | |
|
select suppliers.supplier_id, suppliers.supplier_name, orders.order_date |
|
看看结果
| supplier_id | supplier_name |
|---|---|
| 10000 | IBM |
| 10001 | Hewlett Packard |
| 10002 | Microsoft |
| 10003 | NVIDIA |
We have a second table called orders with three fields (order_id, supplier_id, and order_date).
It contains the following data:
| order_id | supplier_id | order_date |
|---|---|---|
| 500125 | 10000 | 2003/05/12 |
| 500126 | 10001 | 2003/05/13 |
再调用查询语句
| 代码如下 | |
|
select suppliers.supplier_id, suppliers.supplier_name, orders.order_date |
|
结果为
| supplier_id | supplier_name | order_date |
|---|---|---|
| 10000 | IBM | 2003/05/12 |
| 10001 | Hewlett Packard | 2003/05/13 |
| 10002 | Microsoft | <null> |
| 10003 | NVIDIA | <null> |
- 上一篇:sql union all语句用法
- 下一篇:sql 时间日期函数的总结





