SQL中join和left join的区别

如题所述

说起这两种联接方式,一定要把Right Join联系起来。

一、释义。

1、Left Join(左联接)

    ä»¥å·¦è¡¨ä¸ºä¸­å¿ƒï¼Œè¿”回左表中符合条件的所有记录以及右表中联结字段相等的记录——当右表中无相应联接记录时,返回空值。
2、Right Join(右联接)    

    ä»¥å³è¡¨ä¸ºä¸­å¿ƒï¼Œè¿”回右表中符合条件的所有记录以及左表中联结字段相等的记录——当左表中无相应联接记录时,返回空值。

3、Inner Join(等值连接) 

    è¿”回两个表中联结字段相等的行。


二、示例。

1、插入测试表(test1,test2)

create table test1  --测试表1

(id int not null,

 value char(10) )

create table test2  --测试表2

(id int not null,

 value char(10) )

2、插入数据

--insert into test1

 insert into test1

 values (1,'testaa')

 insert into test1

 values (2,'testaa')

 insert into test1

 values (3,'testaa')

--insert into test2

  insert into test2

 values (1,'testaa2')

 insert into test2

 values (2,'testaa2')

 insert into test2

 values (4,'testaa2')

3、查询结果比较(附图)

 select * from test1 a left join test2 b on a.id = b.id

 select * from test1 a right join test2 b on a.id = b.id

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

4、删除测试表

drop table test1 

drop table test2 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-03
  简单点说:
  逗号表示两个表都存在的记录才显示出来;
  left join 表示只要左边表里面有符合条件的数据就可以查找出来
  你可以参考一下数据库的几个范式说明

  为什么用","的时候,不加where也可以用。
  不加where条件可以用,但是这样的数据查出来有什么用吗。追问

我知道left join 我只是忘记join是不是left join的缩写了。你没说join是啥意思

本回答被提问者和网友采纳
第2个回答  2022-02-10
join 等价于 inner join 内连接,又叫等值连接,只返回两个表中连接字段相等的行
left join 左连接 以左边的表为主
相似回答