Mysql子查询和联合(UNION)查询详解
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-05 17:02:46 浏览: 评论:0
在mysql中UNION查询是可以联合多个表,union只是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 --phpfensi.com
- SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名.
UNION 指令的目的是将两个 SQL 语句的结果合并起来,从这个角度来看,UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料,union只是将两个结果联结起来一起显示,并不是联结两个表.
Tags: Mysql子查询 UNION查询
相关文章
- ·MySQL数据库WHERE查询in,like子查询详解(2014-09-29)
- ·mysql不支持在子查询中使用limit解决办法(2015-04-17)
- ·MySQL中两表UNION查询实例介绍(2014-09-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)