sql中的联合查询

我们在实际应用中,或许会用到关于sql的联合查询的应用,下面来总结一下联合查询的具体应用,做一下记录便于记忆。

首先,通过一个实例来讲一下联合查询(关键词 union)

语法:

select .........

union

select ........

union

.......

select * from empoloyees where email like "%a%" or department_id >90;

改用union的用法

select * from empoloyees where email like "%a%"

union 

select * from empoloyees where department_id >90;

可能很多人不理解,为什么明明可以整合到一起用or解决,为什么还要选择用更为复杂的union

其实,union在下面的情形中使用才会显出优势来。

*查询中国用户中男性的信息和外国用户中男性用户的信息,数据是分别存在两个不同的数据表格中,且数据的字段名不一致*

select id, cname ,csex from t_ca where csex='男'

union 

select t_id ,tName,tGender from t_ua where tGender='male';

想一想如果换成用or来解决,你要怎么做?

所以我们通过上面的例子可以看出来联合查询的应用场景就是:

要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息是一致的。

那我们在使用联合查询时需要注意的事项都有哪些,一起来看一下:

1、要求多条查询语句的查询列数是一致的。

2、要求多条查询语句的查询的每一列的类型和顺序最好是对应一致的。

3、注意union的去重,如果不想去重,使用union all可以包含重复项

猜你喜欢

转载自blog.csdn.net/weixin_42575020/article/details/113520365