SQL中的innerjoin、outerjoin和crossjoin有什么区别

 我来答
猪八戒网
2023-04-26 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部

对于SQL中innerjoin、outerjoin和crossjoin的区别,如果你使用join连表,缺陷的情况下是innerjoin,另外,开发中使用的leftjoin和rightjoin属于outerjoin,另外outerjoin还包括fulljoin.下面我通过图标让大家认识它们的区别。

现有两张表,TableA是左边的表。TableB是右边的表。其各有四条记录,其中有两条记录name是相同的:

1.INNERJOIN产生的结果是AB的交集

SELECT*FROMTableAINNERJOINTableBONTableA.name=TableB.name

2.LEFT[OUTER]JOIN产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。

SELECT*FROMTableALEFTOUTERJOINTableBONTableA.name=TableB.name

3.RIGHT[OUTER]JOIN产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。

SELECT*FROMTableARIGHTOUTERJOINTableBONTableA.name=TableB.name

图标如leftjoin类似。

4.FULL[OUTER]JOIN产生A和B的并集。对于没有匹配的记录,则会以null做为值。

SELECT*FROMTableAFULLOUTERJOINTableBONTableA.name=TableB.name

你可以通过isNULL将没有匹配的值找出来:

SELECT*FROMTableAFULLOUTERJOINTableBONTableA.name=TableB.name

WHERETableA.idISnullORTableB.idISnull

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式