Mysql中怎么实现子查询和联合查询

Mysql中怎么实现子查询和联合查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

查询
 在select查询中,又嵌套了一个select查询一个是外层查询,另一个是内层查询
Where子查询

就是在where查询语句有一个select语句,把内层查询的结果当做外层查询的条件。

From子查询

在from 查询语句中,有一个select语句,把内层查询结果作为一张临时表,供外层再一次查询

区别:

对于不是唯一取值的列,使用where子查可能会出现不正确的结果。如果用from,有分组的情况下,我们要通过排序把需要的记录放在第一的位置上。

Exists

#查询有商品的栏目

 代码如下 复制代码
select cat_id,cat_name from category where cat_id 
in
(select distinct cat_id from goods);

 
我们还可以通过Exists 子查询

 代码如下 复制代码
select cat_id,cat_name from category where exists 
 (select * from goods where goods.cat_id = category.cat_id);

 
执行过程:

它和前面我们讲的where、from子查询不同,where和from子查询只执行一次,而exists子查询查询多次(有多少行记录就执行多少次)。


sql UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

sql UNION 语法

 代码如下 复制代码

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:认地,UNION 操作符选取不同的值,即UNION是去了重的。如果允许重复的值,请使用 UNION ALL。

sql UNION ALL 语法

 代码如下 复制代码

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

UNION 指令的目的是将两个 sql 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。union只是将两个结果联结起来一起显示,并不是联结两个表

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程之家行业资讯频道,感谢您对编程之家的支持

相关文章

优化MySQL数据库发布系统存储的方法有:1.mysql库主从读写分...
使用mysql的方法:在“我的电脑”→右键→“管理”→“服务”...
在mysql中查看root用户权限的方法:1.命令行启动mysql服务;...
MySQL主从复制是用来备份一个与主数据库一样环境的从数据库,...
运行mysql的方法1.启动mysql服务,在“我的电脑”→右键→“...
开启mysql的方法1.可以通过快捷键win+r,输入cmd,打开窗口,...