sql server---join on、left join 、right join用法

sqlserver中四种join连接的用法 阅读详情

Join

用途:
当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。

例:
“Employees”表中的数据如下,(其中ID为主键):
ID                  Name
01              Hansen, Ola
02                Svendson, Tove
03               Svendson, Stephen
04               Pettersen, Kari

“Orders”表中的数据如下:

ID                 Product

01                 Printer

03                  Table
03                   Chair

用Employees的ID和Orders的ID相关联选取数据:

SELECT Employees.Name, Orders.Product

FROM Employees, Orders

WHERE Employees.ID = Orders.ID

返回结果:

Name                    Product

Hansen, Ola             Printer

Svendson, Stephen        Table

Svendson, Stephen           Chair

或者你也可以用JOIN关键字来完成上面的操作:

SELECT Employees.Name, Orders.Product

FROM Employees

INNER JOIN Orders

ON Employees.ID = Orders.ID

INNER JOIN的语法:

SELECT field1, field2, field3

FROM first_table

INNER JOIN second_table

ON first_table.keyfield = second_table.foreign_keyfield

解释:

       INNER JOIN返回的结果集是两个表中所有相匹配的数据。

LEFT JOIN的语法:

SELECT field1, field2, field3

FROM first_table

LEFT JOIN second_table

ON first_table.keyfield = second_table.foreign_keyfield

用”Employees”表去左外联结”Orders”表去找出相关数据:
SELECT Employees.Name, Orders.Product

FROM Employees

LEFT JOIN Orders

ON Employees.ID = Orders.ID

返回结果:

Name                       Product

Hansen, Ola                 Printer

Svendson, Tove

Svendson, Stephen           Table

Svendson, Stephen           Chair

Pettersen, Kari

解释:

       LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。

RIGHT JOIN的语法:

SELECT field1, field2, field3

FROM first_table

RIGHT JOIN second_table

ON first_table.keyfield = second_table.foreign_keyfield

用”Employees”表去右外联结”Orders”表去找出相关数据:
SELECT Employees.Name, Orders.Product

FROM Employees

RIGHT JOIN Orders

ON Employees.ID = Orders.ID

返回结果:

Name                       Product

Hansen, Ola                Printer

Svendson, Stephen          Table

Svendson, Stephen           Chair

解释:



       RIGHT JOIN返回” second_table”中所有的行尽管在”first_table”中没有相匹配的数据。

SQL ServerJOIN连接实战:从LEFT JOIN到FULL OUTER JOIN的5个常见场景解析 本文通过电商订单分析、库存管理、用户行为分析、数据同步对比及多表关联等五个真实业务场景,深入解析SQL ServerLEFT JOINRIGHT JOIN、INNER JOIN和FULL OUTER JOIN等连接类型的实战应用与选择逻辑。文章结合具体代码示例,详细说明了不同JOIN的使用时机、常见陷阱及性能优化技巧,帮助开发者避免数据遗漏或重复,提升查询效率与准确性。 阅读详情

相关推荐

SQL Server中四种JOIN操作的实际应用场景解析

本文深入解析SQL Server中四种核心JOIN操作的实际应用场景。重点阐述了INNER JOIN用于精准匹配,LEFT JOIN以主表为核心并兼容未匹配数据,以及FULL OUTER JOIN在数据比对中的独特价值。通过具体业务场景示例,帮助开发者根据‘以谁为主’和‘如何看待未匹配数据’两个核心问题,选择正确的JOIN类型以优化查询逻辑与性能。

weixin_29230901的博客 520

left join on左连接的使用

一、概念:–把left join左边的表的记录全部找出来。系统会先用表A和表B做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成你的结果。–进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面。二、实例1、表a结构和数据table a(id, type):id type ----------------------------

奔跑的蜗牛 6万+

非常详细的SQL--JOIN之完全用法

非常详细的SQL--JOIN之完全用法

关于Left Join On的使用

在进行公司项目超猿的CRMPC端后台会员列表页面开发时,初始为了省事方便,直接使用全表查询,由于该功能项设计了三个表的数据,全表查询导致了查询速度过于长久,被测试人员驳回优化 当我在数据库进行查询的时候,发现查询时间也是达到了令人惊悚的5.5s 首先想到的就是通过explain来查看慢sql,针对性优化 由上可见,多个全表查询导致效率变得迟缓,经过网上查找,请教同事,决定用Left Join的语句来对表进行拼接,而不是全表查询。 Left Join俗称左连接,也就是吧left join左边的表的记录全

左小林的博客 1万+

left join on用法 inner join on用法 right join on用法

left join on用法 inner join on用法 right join on用法 示例:t1表 t2表 left join on用法 1. SELECT * FROM t1 left join t2 on t1.id=t2.t1_id 思考:在on后面加筛选条件和在where后面加筛选条件有什么区别呢? 如果在on后面加上筛选条件,再看一下查询结果:-结果...

Lisa_Lisa的博客 2487

left join 基本用法

废话不多说,来看例子 一、建表,导入测试数据 create table temp1 ( aid VARCHAR2(5) not null, car VARCHAR2(10) not null ); create table temp2 ( bid VARCHAR2(5) not null, username VARCH...

wheredata的博客 15万+

SQL语法—left join on多条件查询深度理解

SQL语法—left join on多条件查询深度理解

m0_65473615的博客 9777

mysql 内联 外联_SQL Server数据库的外联接(Outer Join)

一使用外联接以前在Oracle中用=(+)和(+)=来进行左外联接和右外联接;后来用SQLServer时用*=和=*进行外连接左外联接和右外联接;现在决定用SQL-92的标准方法:[OUTER]JOIN,OUTER是可以省略的。LEFTOUTERJOINLEFTJOIN表示左外联接RIGHTOUTERJOINRIGHTJOIN 表示左外联接F...

weixin_35240068的博客 693

Sql server_left joinright join、 inner join 区别用法

Sqlserver_left joinright join、 inner join 用法 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: -------------------...

xf_yan的博客 8200

Sqlserver_left joinright join、 inner join 用法

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: -------------------------------------------- 表A记录如下: aID     aNum 1     a20050111 2     a20050112 3     a20050113 4     a20050114 5  .

爵主 的博客 3777

sql left join用法_图解 SQLJOIN 的各种用法

一、概要JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。图片是很容易被接受和理解,所以尝试使用图片来说明一下。二、JOIN分类客官:小二,上JOIN分类!……小二:客官,新鲜出炉的JOIN分类图片来喽。三、JOIN分类详解客官:小二,速速详细道来!小二:现在让小二来给您详细介绍。INNER JOIN:仅仅返回两个...

weixin_39953578的博客 3051

SQL Join】两个字段关联到同一个表,如何使用left join

Join 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。 下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。 JOIN: 如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行 ...

寒泉 4万+

SQL Server 数据库常用操作:多表联查(JOIN...ON语句的使用)

1.使用传统连接方式查询   (1). 有两张表Book(BookID,BookName,TypeID,AuthorID,…),BookType(TypeID,TypeName),查询每本书的书名和图书类型。 SELECT BookName, TypeName FROM Book, BookType WHERE Book.TypeID = BookType.TypeID   (2). 有三张表B...

Lesour的博客 4万+

工作面试必备:SQL 中的各种连接 JOIN 的区别总结

尽管大多数开发者在日常工作中经常用到Join操作,如Inner JoinLeft JoinRight Join等,但在面对特定查询需求时,选择哪种Join类型以及如何使用On和Where子句往往成为一大挑战。特别是对于初学者而言,这些概念可能显得抽象且难以区分。在实际应用中,错误地使用Join类型或混淆On与Where子句的功能,都可能导致数据查询结果的不准确或遗漏关键信息。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1776

SQL Server JOIN ON语法详解

JOIN操作是SQL Server处理关系型数据的核心功能,在医药流通行业中可有效整合分散的业务数据。通过合理选择连接类型、优化索引策略、结合行业场景,可显著提升数据查询效率和业务分析能力。建议定期分析执行计划,确保关键查询的响应时间控制在500ms以内。

啥都没有的博客简介 1876

SQLleft joinright in、inner join的区别

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下:  -------------------------------------------- 表A记录如下: aID     aNum 1

qq_37067322的博客 1854

sql语句中left join和inner join中的on与where的区别分析

关于SQL SERVER的表联接查询INNER JOINLEFT JOINRIGHT JOIN,经常会用到ON和WHERE的条件查询,以前用的时候有时是凭感觉的,总是没有搞清楚,今日亲自测试了下,理解到了一些内容,在此分享。 要测试,首先我们来创建三张表,数据库就根据自己的情况而定 创建表TestJoinOnOrWhere_A、TestJoinOnOrWhere_B、TestJoinOn...

qq_36935391的博客 220

sql中的join(1):join,left join,right join,left outer join,right outer join,union,cross join

join (inner join) 内连接INNER JOIN是最常用的连接操作。从数学的角度讲就是求两个表的交集,从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录。 两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积 join不带on条件时返回笛卡尔乘积,与不带join效果一样,例: select * from t_user, t_address; 或 select * from t_user inner join t_address; left join (left ...

Python开发分享的博客 719
上一篇: 如何在objectlist上显示两列数据
下一篇: SQL注入漏洞全接触--入门篇
MissStar
博客等级 码龄20年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值