SQL:左连接,右连接是什么概念啊

SQL:左连接,右连接是什么概念啊普通话说,禁止复制,谢谢... SQL:左连接,右连接是什么概念啊
普通话说,禁止复制,谢谢
展开
 我来答
韩琴1009
高粉答主

2018-12-02 · 每个回答都超有意思的
知道小有建树答主
回答量:991
采纳率:100%
帮助的人:43.5万
展开全部

SQL中左连接和右连接都属于外连接。

左连接是LEFT  JOIN或LEFT OUTER JOIN,左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。     

右连接是RIGHT  JOIN 或 RIGHT  OUTER  JOIN,右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。 

举例:要查询所有学生的选课情况,包括已经选课的和还没有选课的学生,查询语句为SELECT学生表.学号,姓名,班级,课程号,成绩 FROM学生表LEFT OUTER JOIN选课表ON学生表.学号=选课表.学号,左外连接查询中左端表中的所有元组的信息都得到了保留。

扩展资料

连接查询是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。联接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定联接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选联接条件所选的行。    

内连接是INNERJOIN简写成JOIN,是典型的联接运算,使用像 =  或 <> 之类的比较运算符。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。   

外联接除了左右连接外,还有完整外部联接FULL  JOIN 或 FULL OUTER JOIN,完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。   

交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。FROM 子句中的表或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定表或视图时,表或视图的顺序很重要。

参考资料 百度百科-连接查询

镭速传输
2024-10-28 广告
在深圳市云语科技有限公司,我们深知远程传输大文件的重要性与便捷性。为此,我们推荐使用高效的文件传输服务,这些服务通常支持断点续传,确保大文件传输的稳定与安全。用户只需简单上传,系统即可自动处理,无论文件大小,都能实现快速、可靠的远程传输。同... 点击进入详情页
本回答由镭速传输提供
excel实用文档
2018-08-07 · 各行各业有用的EXCEL模板
excel实用文档
采纳数:71 获赞数:18806

向TA提问 私信TA
展开全部

左连接是以左表为基础,右连接,是以右表为基础。

1、Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。

2、Right join:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。

举例:

-------------------------------------------------
a表     id   name     b表     id   job   parent_id
1   张3                   1     23     1
2   李四                 2     34     2
3   王武                 3     34     4
a.id同parent_id   存在关系   

--------------------------------------------------

1)左连接
select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id
结果是
1   张3                   1     23     1
2   李四                  2     34     2
3   王武                  null   

2) 右连接
select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id
结果是
1   张3                   1     23     1
2   李四                  2     34     2
null                       3     34     4   

拓展资料

Inner join:即内连接,同时将两表作为参考对象,根据ON后给出的两表的条件将两表连接起来。结果则是两表同时满足ON后的条件的部分才会列

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心平气和ymy
2018-07-20 · TA获得超过3275个赞
知道答主
回答量:63
采纳率:100%
帮助的人:1.7万
展开全部

1、左连接:左边有的,右边没有的为null。右连接:左边没有的,右边有的为null。

2、LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。LEFT JOIN 关键字语法:SELECT column_name(s) FROM table_name1,LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name。注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

3、RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。RIGHT JOIN 关键字语法:SELECT column_name(s) FROM table_name1,RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name。注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

拓展资料:

1、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

2、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hgzxf
2008-12-22 · TA获得超过719个赞
知道答主
回答量:119
采纳率:0%
帮助的人:178万
展开全部
connect scott/scott@ora9i
查看如下语句:
SELECT ename , dname
FROM Emp, Dept
WHERE Emp.Deptno(+) = Dept.Deptno
也可以写成:
SELECT ename , dname
FROM Emp RIGHT JOIN Dept
ON Emp.Deptno = Dept.Deptno
此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现。

反之:
查看如下语句:
SELECT ename , dname
FROM Emp, Dept
WHERE Emp.Deptno = Dept.Deptno(+)
也可以写成:
SELECT ename , dname
FROM Emp LEFT JOIN Dept
ON Emp.Deptno = Dept.Deptno

则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都会被显示

不知道这样解释你觉得怎么样?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶火溪
2021-09-18
知道答主
回答量:21
采纳率:0%
帮助的人:1.2万
展开全部

连接连接,就是把两张表连接起来的意思

一张表中有学生信息,id,name

一张表中有考试成绩,name,score

通过name进行两张表的连接,在查询结果中显示id,name,score。

如果一个学生没有成绩,使用右连接,这个学生就不会显示,这是因为我用的成绩表作为基准;反之,使用左连接,这个学生的成绩就会显示为null,这是因为用的学生作为基准。


左连接 left join

  1. 查到左边表的数据

  2. 查询右表中和左表关联的数据,空值数据显示null

右连接 right join

  1. 查到右边表的数据

  2. 查询左表中和右表关联的数据,空值数据显示null

全外连接 full join

  1. 左边表和右边表都查出来,两张表的空值填入null

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式