首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

"INNER JOIN"和"OUTER JOIN"有什么区别?

INNER JOIN 和 OUTER JOIN 是 SQL 中用于连接两个或多个表的方法,它们在处理关联数据时非常有用。它们之间的主要区别在于如何处理表中没有匹配关系的行。

INNER JOIN:

INNER JOIN 只返回两个表中具有匹配关系的行。当一个表中的行与另一个表中的行没有匹配时,这些行将被忽略。因此,INNER JOIN 返回的结果集中只包含两个表中共有的数据。

优势:

  • 性能较高,因为它仅返回匹配的行。

应用场景:

  • 当需要合并两个表中的相关数据时。

推荐的腾讯云相关产品:

OUTER JOIN:

OUTER JOIN 返回两个表中所有的行,包括匹配关系的行和没有匹配关系的行。对于没有匹配关系的行,将用 NULL 值填充结果集中的相应列。

优势:

  • 可以显示两个表之间的所有数据,包括不匹配的数据。

应用场景:

  • 当需要查看两个表之间的所有数据,包括不相关的数据时。

推荐的腾讯云相关产品:

总结:

INNER JOIN 和 OUTER JOIN 都是用于连接两个或多个表的方法,但它们处理没有匹配关系的行的方式不同。INNER JOIN 只返回匹配的行,而 OUTER JOIN 返回所有行,包括匹配的行和不匹配的行。在选择使用哪种连接方式时,需要根据实际需求进行判断。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

inner joinouter join、right join、left join 之间的区别

一、sql的left join 、right joininner join之间的区别   left join(左联接) 返回包括左表中的所有记录右表中联结字段相等的记录    right join...(右联接) 返回包括右表中的所有记录左表中联结字段相等的记录   inner join(等值连接) 只返回两个表中联结字段相等的行        outer join(外连接) 可分为左外连接left...outer join右外连接right outer join 举例如下:  -------------------------------------------- 表A记录如下: aID     ...outer join 的简写,两者含义一样的。...举例如下: -------------------------------------------- 2个表,部门表职工表,一个部门下可以多个职工,一个职工只能对应一个部门,所以部门职工时1

4.6K30

left joininner join、right join、full outer join的区别

文章目录 sql的left join 、right joininner join之间的区别 FULL OUTER JOIN SQL FULL OUTER JOIN 关键字 SQL FULL OUTER...JOIN 语法 演示数据库 SQL FULL OUTER JOIN 实例 sql的left join 、right joininner join之间的区别 left join(左联接) 返回包括左表中的所有记录右表中联结字段相等的记录...right join(右联接) 返回包括右表中的所有记录左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 t_user表 t_class表...; FULL OUTER JOIN SQL FULL OUTER JOIN 关键字 FULL OUTER JOIN 关键字只要左表(table1)右表(table2)其中一个表中存在匹配,则返回行....FULL OUTER JOIN 关键字结合了 LEFT JOIN RIGHT JOIN 的结果。

1.7K20
  • 如何在 SQL 中使用 LEFT、RIGHT、INNEROUTER、FULL SELF JOIN

    这是通过使用诸如“LEFT JOIN”、“INNER JOIN“FULL OUTER JOIN”等术语来实现的。 每个类别都有自己的一组应用程序。 希望下面的比较表可以帮助您识别它们的小差异。...gt LEFT JOIN Country_Code cc ON gt.country_code = cc.fips_code; 查询结果: image.png INNER JOIN 当我们想查看两个表的交集时...image.png INNER JOIN 关键字用于标识这种连接: SELECT criteria_id, country_code, country_name, fips_code FROM Google_Ads_GeoTargets...gt INNER JOIN Country_Code cc ON gt.country_code = cc.fips_code; 查询结果: image.png FULL JOIN 无论是否发现匹配,...gt FULL OUTER JOIN Country_Code cc ON gt.country_code = cc.fips_code; 查询结果: image.png RIGHT JOIN 右连接与左连接相同

    2K40

    left join 、right joininner join之间的区别

    inner join(等值连接) 只返回两个表中联结字段相等的行(在表中存在至少一个匹配时,INNER JOIN 关键字返回行) 表A记录如下: aID     aNum 1     a20050111...2006032403 4     a20050114    4     2006032404 NULL     NULL     8     2006032408 结果说明: 仔细观察一下,就会发现,left...join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. inner join sql语句如下: select * from A inner join B on A.aID...a20050113    3     2006032403 4     a20050114    4     2006032404 结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner...join并不以谁为基础,它只显示符合条件的记录.

    1.7K30

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左表中的所有记录右表中联结字段相等的记录  right join(右联接) 返回包括右表中的所有记录左表中联结字段相等的记录 inner join(等值连接)...     a20050114    4     2006032404 NULL     NULL     8     2006032408 (所影响的行数为 5 行) 结果说明: 仔细观察一下,就会发现,left...join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. -------------------------------------------- 3.inner join...a20050113    3     2006032403 4     a20050114    4     2006032404 结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner...join并不以谁为基础,它只显示符合条件的记录. -------------------------------------------- 注:  LEFT JOIN操作用于在任何的 FROM 子句中

    1.6K30

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左表中的所有记录右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行...B表记录不足的地方均为NULL. -------------------------------------------- 2.right join 仔细观察一下,就会发现,left join的结果刚好相反...,这次是以右表(B)为基础的,A表不足的地方用NULL填充. -------------------------------------------- 3.inner join 很明显,这里只显示出了...A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. -------------------------------------------- 注: LEFT...如果在INNER JOIN操作中要联接包含Memo 数据类型或OLE Object 数据类型数据的字段,将会发生错误.

    1.2K20

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左表中的所有记录右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录左表中联结字段相等的记录 inner join(等值连接...     a20050114    4     2006032404 NULL     NULL     8     2006032408 (所影响的行数为 5 行) 结果说明: 仔细观察一下,就会发现,left...join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. -------------------------------------------- 3.inner join...a20050113    3     2006032403 4     a20050114    4     2006032404 结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner...如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.

    1.9K30

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左表中的所有记录右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录左表中联结字段相等的记录 inner join(等值连接)...     a20050114    4     2006032404 NULL     NULL     8     2006032408 (所影响的行数为 5 行) 结果说明: 仔细观察一下,就会发现,left...join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. -------------------------------------------- 3.inner join...a20050113    3     2006032403 4     a20050114    4     2006032404 结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner...如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.

    1.5K80

    SQL中关于JoinInner Join、Left Join、Right Join、Full Join、On、 Where区别

    前言:   今天主要的内容是要讲解SQL中关于JoinInner Join、Left Join、Right Join、Full Join、On、 Where区别用法,不用我说其实前面的这些基本SQL...Inner Join(内连接查询): 概念:与Join相同,两表或多表之间联立查询数据,因此我们在使用多表join查询的时候既可以使用where关联,也可以是inner join关联查询 select...* from Students s inner join Class c on s.ClassId=c.ClassId ?...On、Where的异同: 这两个概念中也是绝大多数人无法区分到底它们两者之间何区别,我什么时候使用On,什么时候使用Where,下面将分别展示两者的异同。...ON的使用无论是左右内全都使用到了On来进行关联: 对于Inner Join 的作用就是起到了与where相同的作用条件筛选: select * from Students s inner JOIN

    6.3K21

    sql语法:inner join on, left join on, right join on具体用法

    大家好,又见面了,我是全栈君 inner join(等值连接) 仅仅返回两个表中联结字段相等的行 left join(左联接) 返回包含左表中的全部记录右表中联结字段相等的记录 right join...(右联接) 返回包含右表中的全部记录左表中联结字段相等的记录 INNER JOIN 语法: INNER JOIN 连接两个数据表的使用方法: SELECT * FROM 表1 INNER JOIN 表....字段号=表X.字段号”代码就可以,这样就能够无限联接数据表了:) 1.理论 仅仅要两个表的公共字段匹配值,就将这两个表中的记录组合起来。...比如,能够联接自己主动编号长整型字段,由于它们均是类似类型。然而,不能联接单精度型双精度型类型字段。...下例展示了怎样通过 CategoryID 字段联接 Categories Products 表: SELECT CategoryName, ProductName FROM Categories INNER

    1.4K10
    领券