A   

left     join     B    的连接的记录数与A表的记录数同  

left join 与left outer join区别_内连接

   A   

right     join     B    的连接的记录数与B表的记录数同    

left join 与left outer join区别_内连接

   A   

left     join     B    等价B    right     join     A  

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

table     A:  

left join 与left outer join区别_内连接

   Field_K,    Field_A  

left join 与left outer join区别_内连接

  

1                         a  

left join 与left outer join区别_内连接

  

3                         b  

left join 与left outer join区别_内连接

  

4                         c  

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

table     B:  

left join 与left outer join区别_内连接

   Field_K,    Field_B  

left join 与left outer join区别_内连接

  

1                         x  

left join 与left outer join区别_内连接

  

2                         y  

left join 与left outer join区别_内连接

  

4                         z  

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

select     a.Field_K,    a.Field_A,    b.Field_K,    b.Field_B  

left join 与left outer join区别_内连接

  

from     a    left     join     b    on     a.Field_K = b.Field_K  

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

   Field_K          Field_A          Field_K          Field_B          

left join 与left outer join区别_内连接

  

-- --------    ----------    ----------    ----------    

left join 与left outer join区别_内连接

   1                       a                      1                       x                    

left join 与left outer join区别_内连接

  

3                       b                      NULL                 NULL   

left join 与left outer join区别_内连接

  

4                       c                      4                       z                    

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

select     a.Field_K,    a.Field_A,    b.Field_K,    b.Field_B  

left join 与left outer join区别_内连接

  

from     a    right     join     b    on     a.Field_K = b.Field_K  

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

   Field_K          Field_A          Field_K          Field_B          

left join 与left outer join区别_内连接

  

-- --------    ----------    ----------    ----------    

left join 与left outer join区别_内连接

   1                       a                      1                       x                    

left join 与left outer join区别_内连接

  

NULL                 NULL                 2                       y                    

left join 与left outer join区别_内连接

  

4                       c                      4                       z      --


left join 与left outer join区别_内连接

举个例子:  

left join 与left outer join区别_内连接

   假设a表和b表的数据是这样的。  

left join 与left outer join区别_内连接

   a                          b    

left join 与left outer join区别_内连接

   id      name  id      stock   

left join 与left outer join区别_内连接

  

1   a              1           15   

left join 与left outer join区别_内连接

  

2           b              2           50   

left join 与left outer join区别_内连接

  

3           c                   

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

select     *     from     a    inner     join     b    on     a.id = b.id  

left join 与left outer join区别_内连接

   这个语法是连接查询中的内连接,它产生的结果是  

left join 与left outer join区别_内连接

   两个表相匹配的记录出现在结果列表中。  

left join 与left outer join区别_内连接

   根据上面的表,出现的结果是这样的  

left join 与left outer join区别_内连接

   a.id      name      b.id      stock  

left join 与left outer join区别_内连接

  

1         a              1           15   

left join 与left outer join区别_内连接

  

2               b              2           50   

left join 与left outer join区别_内连接

  

-- --------------------------  

left join 与left outer join区别_内连接

   select     *     from     a,b    where     a.id = b.id  

left join 与left outer join区别_内连接

   这个语法是内连接的另外一种写法,其执行结果与inner   

join     一样  

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

-- ------------------------------    

left join 与left outer join区别_内连接

   

left join 与left outer join区别_内连接

  

select     *     from     a    left / right     join     b    on     a.id = b.id  

left join 与left outer join区别_内连接

   这个是外连接语法中的左外连接或右外连接  

left join 与left outer join区别_内连接

   如果是左外连接的话,它将显示a表的所有记录,  

left join 与left outer join区别_内连接

  

select     a. * ,b. *     from     a    left     join     b    on     a.id = b.id  

left join 与left outer join区别_内连接

   查询的结果是这样的:  

left join 与left outer join区别_内连接

   a.id      name      b.id      stock  

left join 与left outer join区别_内连接

  

1           a          1               15   

left join 与left outer join区别_内连接

  

2                 b          2               50   

left join 与left outer join区别_内连接

  

3                 c        null           null    

left join 与left outer join区别_内连接

  

-- ------------------------------------------  

left join 与left outer join区别_内连接

   如果是右外连接的话,它将显示b表的所有记录,  

left join 与left outer join区别_内连接

  

select     a. * ,b. *     from     a    right     join     b    on     a.id = b.id  

left join 与left outer join区别_内连接

   查询的结果是这样的:  

left join 与left outer join区别_内连接

   a.id      name      b.id      stock  

left join 与left outer join区别_内连接

  

1           a          1               15   

left join 与left outer join区别_内连接

  

2                 b          2               50    

--


left join 与left outer join区别_内连接

select     a.

* ,b. *     from     a    left     join     b    on     a.k    =     b.k    

left join 与left outer join区别_内连接

   select

    a. * ,b. *     from     a    left     outer     join     b    on     a.k    = b.k  

left join 与left outer join区别_内连接

   --

--------上面两种一样left    join是left    outer    join的简写  

left join 与left outer join区别_内连接

   select     a. * ,b. *     from     a    left     inner     join     b    on     a.k    =     b.k    

left join 与left outer join区别_内连接

   没有这种写法,错误的语句.

--


left join 与left outer join区别_内连接

在你要使用多个left    join的时候  

left join 与left outer join区别_内连接

   比如说10个  

left join 与left outer join区别_内连接

   我们把10个全都写成left    join的形式  

left join 与left outer join区别_内连接

   然后再SQL让他自动运行一下,它会把最后一次出现的left    join变成left    outer    

join   

left join 与left outer join区别_内连接

   所以依此推理,最后一个left    join会以left    outer     join的形式存在  

left join 与left outer join区别_内连接

   当然,不管变不变对结果的显示没有任何影响  

left join 与left outer join区别_内连接

   希望我的实验能对你有所帮助