目录
基本概念
举例说明
目的:
首页 数据库 mysql教程 【数据库】浅显易懂地理解左、右连接

【数据库】浅显易懂地理解左、右连接

Jun 07, 2016 pm 04:12 PM
数据 数据库 理解 连接

之前一直对数据库里面的外连接有些疑惑,理解的不是很透彻,今天总算自己建了个表,详细地对照了几种写法,总算彻底搞清楚了。 基本概念 左连接、右连接就是数据库里面的关键字 left join 和 right join, 当然在oracle里面也可以在某个字段的后面加上()来表

之前一直对数据库里面的外连接有些疑惑,理解的不是很透彻,今天总算自己建了个表,详细地对照了几种写法,总算彻底搞清楚了。

基本概念

左连接、右连接就是数据库里面的关键字 left join 和 right join, 当然在oracle里面也可以在某个字段的后面加上(+)来表示外连接

左连接保留出现在left join左边的关系中的元组,也就是允许右边关系中为空;通俗一点:Left join 会从左表中返回所有的行,即便在右表中没有找到匹配的项。

同理右连接保留出现在right join右边的关系中的元组,也就是允许左边关系中为空;Right join会总右表中返回所有的行,即便在左表中没有找到匹配的项。

在Oracle中

select * from a left join b on a.xxx=b.xxx
登录后复制

select * from a, b where  a.xxx = b.xxx(+)
登录后复制

是等价的。

举例说明

再难理解的知识点放到实际中去操作一下,立刻就能理解地透彻很多。

我们假设现在有两张表 a1 和a2

a1:

\

a2:

\

这两个表中有共同的字段id表示相同的含义,bcde字段可以看做不同的4列;

可以看到这两个表中有一个相同的id 1;那如果不做任何选择,a1和a2的笛卡尔积是什么样子呢?

试着执行下列语句:<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:sql;">select * from a1, a2

你会得到如下的结果:

\

笛卡尔积是个全乘积,但是单单得到笛卡尔积是没有什么用的,因为这个集合很大,而且很多行并没有什么实际意义,这时候就需要加上where语句来选择出真正有用的列

试着执行下列语句:

select a.id, b, c, d, e from a,b where  a.id=b.id;
登录后复制

注意,如果笛卡尔积中的字段是唯一的,可以不用在select的时候标明,也就是说不用写 select a.c , b.d, b.e 等。

这时候得到的结果一定是只有1行的,也就是
\

这个很容易理解,也是我们最常使用的,那如果我们想得到a1表中的所有id,而无论他在不在a2中呢,改如何做呢?

试试下列语句中的任意一条:

select a.id,b,c,d,e from a,b where a.id=b.id(+);
select a.id,b,c,d,e from a left join b on a.id = b.id;
登录后复制

你会得到什么结果呢?

\
是的,你会发现我们把a1表中所有的id都选择了出来,如果这个id没有在a2表中出现,那么这一行就会留空。

看到这里,一个更通俗易懂的理解外连接的诀窍就是:+号出现的那一侧允许出现NULL

当然,我们可以通过在d和e字段加上nvl(d,0)语句来把相应的null值改成我们想要的数据。

目的:

到了这里,相信我们已经对外连接有个清晰的认识了,不过为什么我们需要外连接呢??

举个简单的例子,假如a1表是学生信息表,a2表示学生选课表


由于某种特殊原因,学号为201400002的那位女同学就是没有选一门课,不管她是休学1年还是已经修满学分了,就是任性,一门课也不修,那如果我们想统计学生的姓名,年龄,选课信息等等,如果不使用外连接,很容易地就把这位女同学漏掉了,而一个a.id=b.id(+)就足以规避这种特殊情况带来的错误了!




本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

超级智能体生命力觉醒!可自我更新的AI来了,妈妈再也不用担心数据瓶颈难题 超级智能体生命力觉醒!可自我更新的AI来了,妈妈再也不用担心数据瓶颈难题 Apr 29, 2024 pm 06:55 PM

哭死啊,全球狂炼大模型,一互联网的数据不够用,根本不够用。训练模型搞得跟《饥饿游戏》似的,全球AI研究者,都在苦恼怎么才能喂饱这群数据大胃王。尤其在多模态任务中,这一问题尤为突出。一筹莫展之际,来自人大系的初创团队,用自家的新模型,率先在国内把“模型生成数据自己喂自己”变成了现实。而且还是理解侧和生成侧双管齐下,两侧都能生成高质量、多模态的新数据,对模型本身进行数据反哺。模型是啥?中关村论坛上刚刚露面的多模态大模型Awaker1.0。团队是谁?智子引擎。由人大高瓴人工智能学院博士生高一钊创立,高

iPhone上的蜂窝数据互联网速度慢:修复 iPhone上的蜂窝数据互联网速度慢:修复 May 03, 2024 pm 09:01 PM

在iPhone上面临滞后,缓慢的移动数据连接?通常,手机上蜂窝互联网的强度取决于几个因素,例如区域、蜂窝网络类型、漫游类型等。您可以采取一些措施来获得更快、更可靠的蜂窝互联网连接。修复1–强制重启iPhone有时,强制重启设备只会重置许多内容,包括蜂窝网络连接。步骤1–只需按一次音量调高键并松开即可。接下来,按降低音量键并再次释放它。步骤2–该过程的下一部分是按住右侧的按钮。让iPhone完成重启。启用蜂窝数据并检查网络速度。再次检查修复2–更改数据模式虽然5G提供了更好的网络速度,但在信号较弱

美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次 美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次 May 07, 2024 pm 05:00 PM

最近,军事圈被这个消息刷屏了:美军的战斗机,已经能由AI完成全自动空战了。是的,就在最近,美军的AI战斗机首次公开,揭开了神秘面纱。这架战斗机的全名是可变稳定性飞行模拟器测试飞机(VISTA),由美空军部长亲自搭乘,模拟了一对一的空战。5月2日,美国空军部长FrankKendall在Edwards空军基地驾驶X-62AVISTA升空注意,在一小时的飞行中,所有飞行动作都由AI自主完成!Kendall表示——在过去的几十年中,我们一直在思考自主空对空作战的无限潜力,但它始终显得遥不可及。然而如今,

特斯拉机器人进厂打工,马斯克:手的自由度今年将达到22个! 特斯拉机器人进厂打工,马斯克:手的自由度今年将达到22个! May 06, 2024 pm 04:13 PM

特斯拉机器人Optimus最新视频出炉,已经可以在厂子里打工了。正常速度下,它分拣电池(特斯拉的4680电池)是这样的:官方还放出了20倍速下的样子——在小小的“工位”上,拣啊拣啊拣:这次放出的视频亮点之一在于Optimus在厂子里完成这项工作,是完全自主的,全程没有人为的干预。并且在Optimus的视角之下,它还可以把放歪了的电池重新捡起来放置,主打一个自动纠错:对于Optimus的手,英伟达科学家JimFan给出了高度的评价:Optimus的手是全球五指机器人里最灵巧的之一。它的手不仅有触觉

2024 QS排名发布!计算机MIT霸榜,清华11,北大15 2024 QS排名发布!计算机MIT霸榜,清华11,北大15 Apr 18, 2024 pm 09:04 PM

2024QS世界大学学科排名来了!总体和23年变化不大。根据官网信息,2024QS世界大学学科排名涵盖了55个细分学科和5大学术领域。共有1559所高校参与了排名,其中64所高校是今年的新面孔(也就是说2023年的排名中没有出现)。而在这64所高校中,又有14所是真真正正第一次出现的。其中就包含了中国科学院大学。据精分学科来说,音乐(Music)是今年推出的新科目。此外,数据科学和人工智能排名得到了扩充,排名新加入了51所高校。总榜排名总榜前五名分别是:麻省理工学院、剑桥大学、牛津大学、哈佛大学

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源 单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源 Apr 29, 2024 pm 04:55 PM

FP8和更低的浮点数量化精度,不再是H100的“专利”了!老黄想让大家用INT8/INT4,微软DeepSpeed团队在没有英伟达官方支持的条件下,硬生生在A100上跑起FP6。测试结果表明,新方法TC-FPx在A100上的FP6量化,速度接近甚至偶尔超过INT4,而且拥有比后者更高的精度。在此基础之上,还有端到端的大模型支持,目前已经开源并集成到了DeepSpeed等深度学习推理框架中。这一成果对大模型的加速效果也是立竿见影——在这种框架下用单卡跑Llama,吞吐量比双卡还要高2.65倍。一名

Open-Sora全面开源升级:支持16s视频生成和720p分辨率 Open-Sora全面开源升级:支持16s视频生成和720p分辨率 Apr 25, 2024 pm 02:55 PM

Open-Sora在开源社区悄悄更新了,现在支持长达16秒的视频生成,分辨率最高可达720p,并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。我们来尝试尝试效果。生成个横屏圣诞雪景,发b站再生成个竖屏,发抖音还能生成16秒的长视频,这下人人都能过把编剧瘾了怎么玩?指路GitHub:https://github.com/hpcaitech/Open-Sora更酷的是,Open-Sora依旧全部开源,包含最新的模型架构、最新的模型权重、多时间/分辨率/长

发布几小时,微软秒删媲美GPT-4开源大模型!竟因忘记投毒测试 发布几小时,微软秒删媲美GPT-4开源大模型!竟因忘记投毒测试 Apr 23, 2024 pm 05:22 PM

上周,微软空降了一个堪称GPT-4级别的开源模型WizardLM-2。却没想到发布几小时之后,立马被删除了。有网友突然发现,WizardLM的模型权重、公告帖子全部被删除,并且不再微软集合中,除了提到站点之外,却找不到任何证据证明这个微软的官方项目。GitHub项目主页已成404。项目地址:https://wizardlm.github.io/包括模型在HF上的权重,也全部消失了.....全网满脸疑惑,WizardLM怎么没了?然鹅,微软之所以这么做,是因为团队内部忘记对模型做「测试」。随后,微

See all articles