• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

sql join on关联查询语句用法

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

sql join 包括很多种查询如内连,外连outer 这些在用法上大致相同,但是相出来的结果既不同,下面我们来看看这些实例吧。

加入是用来从多个表中的行结合起来。每当在一个SQL语句的FROM子句中列出的两个或多个表进行联接。

有不同类型的联接。让我们看看几个例子。

内部联接(简单的加入)
机会是,你已经写了一个SQL语句,使用一个内部联接。这是最常见的类型,加入。内部联接满足联接条件的多个表返回所有行。

代码如下复制代码

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

这条SQL语句将返回从那里是一个匹配的供应商和订单表supplier_id价值的供应商和订单表的所有行。

让我们看看一些数据解释工作的内在联结如何:

我们有两个领域的供应商(supplier_id和supplier_名称)表。
它包含以下数据:

supplier_idsupplier_name
10000IBM
10001Hewlett Packard
10002Microsoft
10003NVIDIA

We have another table called orders with three fields (order_id, supplier_id, and order_date).
It contains the following data:

order_idsupplier_idorder_date
500125100002003/05/12
500126100012003/05/13

运行如下代码

代码如下复制代码

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

结果

supplier_idnameorder_date
10000IBM2003/05/12
10001Hewlett Packard2003/05/13

Outer Join
先看一个实例

代码如下复制代码

suppliers.supplier_id, suppliers.supplier_name, orders.order_date
from suppliers, orders
where suppliers.supplier_id = orders.supplier_id(+);

这条SQL语句将返回所有行从供应商表,并只有那些从订单表中的行的联接字段相等。

(+),后orders.supplier_id场表示,如果在供应商的表supplier_id价值不存在订单表,订单表中的各个领域将作为显示的结果集。

上面的SQL语句也可以写成如下形式:

代码如下复制代码

select suppliers.supplie本文来源gaodai#ma#com搞@@代~&码网^r_id, suppliers.supplier_name, orders.order_date
from suppliers, orders
where orders.supplier_id(+) = suppliers.supplier_id

看看结果

supplier_idsupplier_name
10000IBM
10001Hewlett Packard
10002Microsoft
10003NVIDIA

We have a second table called orders with three fields (order_id, supplier_id, and order_date).
It contains the following data:

order_idsupplier_idorder_date
500125100002003/05/12
500126100012003/05/13

再调用查询语句

代码如下复制代码

select suppliers.supplier_id, suppliers.supplier_name, orders.order_date
from suppliers, orders
where suppliers.supplier_id = orders.supplier_id(+);

结果为

supplier_idsupplier_nameorder_date
10000IBM2003/05/12
10001Hewlett Packard2003/05/13
10002Microsoft
10003NVIDIA

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:sql join on关联查询语句用法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址