我知道SQL Server中的连接.

例如有两张桌子表1,表2.

它们的表 struct 如下所示.

create table Table1 (id int, Name varchar (10))

create table Table2 (id int, Name varchar (10))

表1数据如下:

    Id     Name     
    -------------
    1      A        
    2      B    

表2数据如下:

    Id     Name     
    -------------
    1      A        
    2      B 
    3      C

如果我执行下面提到的两个SQL语句,两个输出将是相同的

select *
from Table1
  left join Table2 on Table1.id = Table2.id

select *
from Table2
  right join Table1 on Table1.id = Table2.id

请在上面的SQL语句中解释左连接和右连接之间的区别.

推荐答案

Select * from Table1 left join Table2 ...

Select * from Table2 right join Table1 ...

确实是完全可以互换的.然而,试着用Table2 left join Table1(或其相同的一对,Table1 right join Table2)来观察差异.这个查询应该会提供更多行,因为表2包含一个id在表1中不存在的行.

Sql相关问答推荐

按postquist中的日期查询json列

Postgresql -如何计算刷卡和刷卡时间

Select /过滤postgr中的树 struct

使用来自不同深度的嵌套组的值执行计算的干净方法?

BigQuery-当子查询不返回任何结果时,所有结果为零

PostgreSQL使用SQL子查询在时间间隔内 Select 数据

如何在SQL Server中拆分包含字符和数字的列?

在MS Access Modern图表的X轴上显示时间值时遇到问题

在Athena中使用regexp提取括号前的字符串值

WooCommerce产品的SQL查询:获取sku和产品标签

根据标识符将两行合并为一行

将具有嵌套 XML 的列转换为 SQL 中的表格格式?

对于小数据集,EF / SQL 语句花费的时间太长

如何查询自引用 comments 表以查找带有回复的 comments ,并按最新回复排序?

计算组内多个日期间隔go 年的累计天数

PostgreSQL-用第一个非空填充以前的值

for each 客户查找每个类别的最新评分

如何仅在满足条件时才按顺序在 SQL 中计数?

SQL/Postgres:按日期和其他属性对相关性能进行分组

聚合 Athena 中的列