合聚咖

合聚咖

oracle 和left join的区别

admin

sql左连接与left join是一个意思。

用数据举例比较容易理解:

如:表1中有数据

班级id 班级名称

1 一班

2 二班

表2:

学生id 学生姓名 所属班级id

1 张三 1

2 李四 1

如果查询每个班级总人数,不用左连接

select a.班级名称,sum(case when a.班级id=b.所属班级id then 1 else 0 end) 人数 from 表1 a,表2 b where a.班级id=b.所属班级id group by a.班级名称

此时结果:

班级名称 人数

一班 2

如果用左连接

select a.班级名称,sum(case when a.班级id=b.所属班级id then 1 else 0 end) 人数 from 表1 a left join 表2 b on a.班级id=b.所属班级id group by a.班级名称

此时结果:

班级名称 人数

一班 2

二班 0

所以左连接就是以左表为基准,来显示全部数据,而不用左连接则只显示能关联上的数据。