首页 > 代码库 > SQL学习之高级联结(自联结、自然联结、外联接)
SQL学习之高级联结(自联结、自然联结、外联接)
create table Customers(Id int identity(1000000,1),Company varchar(30) null,Name varchar(20) null)insert into Customers values(‘Fun4All‘,‘Tom‘)insert into Customers values(‘Alibaba‘,‘Tim‘)insert into Customers values(‘BaiDu‘,‘Jerry‘)insert into Customers values(‘G0ogle‘,‘Herry‘)insert into Customers values(‘Tencent‘,‘MaHuaTeng‘)insert into Customers values(‘Fun4All‘,‘Tom‘)
这是讲解所需要的sql脚本
1、自联结 代码如下:
select * from Customers
现在有个需求,需要给Tom同一公司的所有会员发送一条邮件。
分析下基本思路,首先根据Tom找到其所在的公司名,在根据公司名找到其公司民下的所有会员。下面是解决代码:
select * from Customers where Company in(select Company from Customers where Name=‘Tom‘)
ok,通过子查询轻松的完成需求!
但是这边有一个重点,你必须要知道,子查询虽然方便,但是大多数DBMS的处理子查询的速度比处理联结要慢的多,如果数据量少的话,几乎没什么影响,但是如果后期数据会很大的话,就应该使用自联结!
下面是使用自联结的解决代码:
select *from Customers c1,Customers c2where c1.Company=c2.Companyand c2.Name=‘Tom‘
这个是两张表(实际是一张表)联结之后的结果图,ok完成需求!
通过联结的机制
SQL学习之高级联结(自联结、自然联结、外联接)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。