sql join 用法总结

本文详细介绍了SQL中五种常用的Join操作,包括Cross Join、Inner Join、Left Join、Right Join及Full Join,并通过具体示例展示了每种Join的特点及其应用场景。

  sql中常用的join包括以下几种:

   cross join

   inner join

   left join(left outer join)

   right join(right outer join)

   full join (full outer join)

    现有数据表employee和CompanyInfor,如下所示

        

  1.cross join

     cross join 为两张表的笛卡尔乘积,连接后返回结果集的行数为两张表行数的乘积。

select a.*,b.* from employee a cross join CompanyInfor b
----等价于-----
select a.*,b.* from employee a ,CompanyInfor b
---此时返回结果集的行数为4*4

   

  2.inner join

     inner join 返回的结果集是  在cross join 返回的结果集的基础上,去掉不满足连接条件的。

select a.*,b.* from employee a inner join CompanyInfor b on a.companyId=b.id
---等价于---
select a.*,b.* from employee a cross join CompanyInfor b  where a.companyId=b.id
---等价于---
select a.*,b.* from employee a ,CompanyInfor b where a.companyId=b.id

   

   3.left join (left outer join)

      left join 是在inner join的结果集上加上左表中没被选上的行,行的右表部分每个字段都用NUll填充。

      left join 左边的表为主表,返回的结果集的行数为左边表的行数。

---a表为主表,返回的结果集的行数为a表的行数---
select a.*,b.* from employee a left join CompanyInfor b on a.companyId=b.id

   

   4.right join(right outer join)

      right join 是在inner join的结果集上加上右表中没被选上的行,行的左表部分每个字段都用NUll填充。

      right join 右边的表为主表,返回的结果集的行数为右边表的行数。

--b表为主表,返回的结果集的行数为b表的行数----
select a.*,b.* from employee a right join CompanyInfor b   on a.companyId=b.id

   

   5.full join(full outer join)

      full join返回的结果集为left join和right join结果集的并集

select a.*,b.* from employee a full join CompanyInfor b  on a.companyId=b.id 

   

 

转载于:https://www.cnblogs.com/NoteofEveryDay/p/join.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值