SQL Server中左连接和右连接的区别

我知道SQL Server中的连接。

例如。 有两个表格Table1,Table2。

有表结构如下。

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 )以查看差异。 这个查询应该给你更多的行,因为Table2包含一个id不在Table1中的行。


Codeproject有这张图解释了SQL连接的简单基础,取自:http://www.codeproject.com/KB/database/Visual_SQL_Joins.aspx SQL joins explained


您正在从中获取数据的表格是'LEFT'。
你加入的表是'RIGHT'。
左连接:从左表和(仅)匹配右表中的所有项目。
右连接:从右表中选取所有项目,并且(仅)从左表中匹配项目。
所以:

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

得到:

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

但:

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

得到:

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

你是正确的加入表与更少的行与更少的行上的行

再次,在表格中留下更少行的连接表,更多行
尝试:

 If Table1.Rows.Count > Table2.Rows.Count Then  
    ' Left Join  
 Else  
    ' Right Join  
 End If  
链接地址: http://www.djcxy.com/p/86257.html

上一篇: Difference between left join and right join in SQL Server

下一篇: Ionic animation for splash screen