我知道SQL Server中的连接.

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

它们的表结构如下所示.

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相关问答推荐

加入日期表,带有脏日期字段

当此标识符不再在数据库中时,缺少特定标识符的日期而不添加额外的日期 SQL

在 SQL 中搜索 WHERE 值为 SELECT,为什么现在可以工作?

根据列规则选择第一个匹配项

如何合并这些查询并创建单个查询

如何快速判断表是否超过 N 行?

Airflow PostgresHook 错误编解码器无法解码位置 3 中的字节 0xc3

如何计算给定状态的最后记录?

try 在 SQL Server 中显示包含开始和结束日期、工作时间和小时费率的员工工作详细信息时如何避免重复?

Google BigQuery:UNNEST,每个不同的键都变成一列

BigQuery JSON - 标量子查询产生了多个元素

根据其他记录更新记录

可以在 Oracle View 中进行复杂的汇总或求和吗?

如何计算将 null 视为零的平均值

适用于所有(或大多数)数据库的高效 SQL 测试查询或验证查询

Pyspark:根据多个条件过滤数据框

如何在 postgresql 中按周分组

Hive 插入查询,如 SQL

如何在 Linux 上比较两个 SQLite 数据库

如何选择表格中除一列以外的所有列?