博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php mysql 子查询_MySQL 表子查询
阅读量:6361 次
发布时间:2019-06-23

本文共 894 字,大约阅读时间需要 2 分钟。

MySQL 表子查询

表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据。

MySQL 表子查询实例

下面是用于例子的两张原始数据表:

article 表:

aid

title

content

uid

1

文章1

文章1正文内容...

1

2

文章2

文章2正文内容...

1

3

文章3

文章3正文内容...

2

4

文章4

文章4正文内容...

3

blog 表:

bid

title

content

uid

1

日志1

日志1正文内容...

1

2

文章2

文章2正文内容...

1

3

文章3

文章3正文内容...

2

SQL 如下:

SELECT * FROM article WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)

查询返回结果如下所示:

aid

title

content

uid

2

文章2

文章2正文内容...

1

3

文章3

文章3正文内容...

2

对比前面行子查询的例子,将行子查询中的 WHERE bid=2 条件限制去掉之后,其返回的数据就是一个表记录(当然如果符合条件的记录只有一条,而成为行子查询记录,但我们认为这是一个表子查询)。

该 SQL 的意义在于查找 article 表中指定的字段同时也存在于 blog 表中的所有的行(注意 = 比较操作符换成了 IN),实际上等同于下面的条件语句:

SELECT * FROM article,blog

WHERE (article.title=blog.title AND article.content=blog.content AND article.uid=blog.uid)

实际上,后面的语句是经过 MySQL 优化的而效率更高,或者也可以使用 MySQL JOIN 表连接来实现。在此使用该例子只是为了便于描述表子查询的用法。

衍生数据表子查询

表子查询应用得更多情况是衍生数据表子查询,即首先执行子查询生成临时表,外层主查询再到此临时表中获取数据。具体参见《MySQL FROM 子查询》。

转载地址:http://akima.baihongyu.com/

你可能感兴趣的文章
大型网站技术架构(四)网站的高性能架构
查看>>
BAT资深架构师告诉你从程序员到架构师,你需要掌握什么能力?
查看>>
电脑被格式化了如何恢复?
查看>>
母亲像一道明亮的光
查看>>
js判断数组中是否包含某元素
查看>>
关于tcp/ip三次握手的理解和详细分析
查看>>
高性能web开发之网络传输环节
查看>>
遍历Map的四种方法
查看>>
https、SSL与数字证书介绍
查看>>
【VMCloud云平台】SCVMM配置(二)创建一片云
查看>>
http://bbs.linuxtone.org/thread-15681-1-1.html
查看>>
TIBCO add user error solution
查看>>
ssh服务的安装与运行
查看>>
linux-centos7搭建本地yum服务并使用
查看>>
For input string: "null"
查看>>
『高级篇』docker之微服务业务分析(九)
查看>>
安装、登录CentOS7
查看>>
selenium处理嵌套iframe
查看>>
通过思科模拟器CISCO PACKET TRACER学习网络3——初步认识VLAN
查看>>
我的友情链接
查看>>