网站首页 > 技术文章 正文
最近用到了SQL Server 2012 相关内容,以此为契机,重新梳理一下SQL Server 相关的知识。
本系列文章不再介绍简单的SQL 语句(select,insert, update,delete等),系列文章将介绍高级SQL用法。本篇文章主要介绍Join用法(JOIN,LEFT JOIN , RIGHT JOIN,FULL JOIN)。
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据.
有时候我们,为了得到完成的结果,需要从两个或者多个表中获取结果,这时候我们就需要执行Join操作。
接下来的用例都会以这两张表作为基础。
以及下面的Orders表。请注意:Id_P 列把两张表相关联起来。
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等高级用法。
如果有错误,请在评论区指出。
猜你喜欢
- 2024-11-16 从阿里手册引出的Join查询思考(阿里技术手册)
- 2024-11-16 Python中join()方法——字符串、路径拼接的常用方法
- 2024-11-16 oracle 多表连接查询 join(一)(oracle多表联查效率优化)
- 2024-11-16 让程序员头疼的微服务下数据聚合join(一)
- 2024-11-16 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程你是否知道?
- 2024-11-16 MySQL的Join到底能不能用,一文搞懂它
- 2024-11-16 一文看懂Mycat跨分片Join实现--全局表、ER分片、HBT、sharejoin
- 2024-11-16 为什么大厂不建议使用多表join?(为什么要多表查询)
- 2024-11-16 什么,LEFT JOIN 会变成 JOIN?(left join作用)
- 2024-11-16 LINUX中JOIN用法(linux jour)
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-