靓丽时尚馆

位置:首页 > 健康生活 > 心理

如何把两条SQL语句合并

心理6.1K
如何把两条SQL语句合并

sql语句合并的方式要依据sql语句本身的内容而定,如果两条sql里的内容是查询同一个表的,那么可以直接合并,如果是不同的表,就要看是否有主键外键关联(join),如果完全不相干的两条sql语句要合并,就用union

举个例子:

我用Toad做演示,我先新建两张table,create table #AA(ID int,name nvarchar(10),age int)create table #BB(ID int,name nvarchar(10),age int )

分别向两张table插入三条数据,可以用两个班来理解A班有三个学生,B班也有三个学生,为下一步sql语句做准备

insert into #AA select 1,N&#39张三&#39,10

insert into #AA select 2,N&#39李四&#39,10

insert into #AA select 3,N&#39王五&#39,11

insert into #BB select 1,N&#39张A&#39,10

insert into #BB select 2,N&#39李B&#39,11

insert into #BB select 3,N&#39王C&#39,12

现在要求AB两个班找出年龄等于10岁的同学,最直接的方法就是:select * from #AA where age=10

select * from #BB where age=10但是这样会产生两个结果集,结果不直观!

接下来用union将这两条sql语句合并起来,F5执行之后,就会发现变成一个结果集!

select * from #AA where age=10

union

select * from #BB where age=10

还有一种不用union的做法,sql语句这样写:

select a.*,b.* from #AA a inner join #BB b on =

where =10 and =10

这种写法就是要找出主键外键的关联关系,但是结果就不好直观来阅读,因为结果集是混乱的

对比join与union,可以发现union是完全的结果累加,相当于完美合并,join是属于条件连接,要依据实例来判断什么时候该用join,什么时候该用union

标签:sql 合并 语句