update select用法_SQL Server 2012 高级用法(三)之Join

最近用到了SQL Server 2012 相关内容,以此为契机,重新梳理一下SQL Server 相关的知识。

本系列文章不再介绍简单的SQL 语句(select,insert, update,delete等),系列文章将介绍高级SQL用法。本篇文章主要介绍Join用法(JOIN,LEFT JOIN , RIGHT JOIN,FULL JOIN)。

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据.

有时候我们,为了得到完成的结果,需要从两个或者多个表中获取结果,这时候我们就需要执行Join操作。

a0cb6ec011228338226d9a0846fdd49d.png

接下来的用例都会以这两张表作为基础。

7cd458f543d201f3c24dffbe01329add.png

Persons 表

以及下面的Orders表。请注意:Id_P 列把两张表相关联起来。

0267bec8f6113c8ea9ca4d9430aae479.png

Orders表

Inner Join(与Join是相同的)

语法:

SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.cloumn_name=table_name2.cloumn_name

l例子:如果要列出所有人的订购,则可以使用下面语句:

SELECT P.LastName, P.FirstName,O.OrderNo FROM Persons AS P INNER JOIN Orders AS O ON P.Id_P = O.Id_P ORDER BY P.LastName

Left Join (左连接)

左连接关键字会从左边那里返回所有的行,即使在右表中没有匹配的行。

语法:

SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.cloumn_name=table_name2.cloumn_name

例子:我们希望列出所有的人,以及他们的订购。则可以使用下面SQL

SELECT P.LastName, P.FirstName,O.OrderNo FROM Persons AS P LEFT JOIN Orders AS O ON P.Id_P = O.Id_P ORDER BY P.LastName

Right Join ( 右连接)

右连接关键字会从右边那里返回所有的行,即使在左表中没有匹配的行。

语法:

SELECT column_name(s) FROM table_name1 Right JOIN table_name2 ON table_name1.cloumn_name=table_name2.cloumn_name

例子:我们如果希望列出所有的订单,以及订购他们的人。可以使用下面语句:

SELECT P.LastName, P.FirstName,O.OrderNo FROM Persons AS P RIGHT JOIN Orders AS O ON P.Id_P = O.Id_P ORDER BY P.LastName

Full Join

full join: 只要某个表中存在匹配,FULL JOIN 关键字就会返回。

语法:

SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.cloumn_name=table_name2.cloumn_name

例子:

我们希望列出所有人以及他们的所有订单则可以使用:

SELECT P.LastName, P.FirstName,O.OrderNo FROM Persons AS P FULL JOIN Orders AS O ON P.Id_P = O.Id_P ORDER BY P.LastName

今天介绍Join三种高级SQL的用法,接下来会陆续介绍 check, create,union等高级用法。

如果有错误,请在评论区指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值