在MySQL中使用子查询和标量子查询的基本操作教程
子查询是调用一个SELECT语句作为一个中间结果的另一个SQL查询statement.mysql支持所有格式和操作的SQL标准所要求的结果,同时也扩展了一些独特的功能。
子查询没有固定的语法,和子查询的一个例子如下:
SELECT * FROM文章,UID(UID在选择从用户那里状态= 1)
两个相应的表如下所示:
条条表:
用户用户表:
查询返回的结果如下所示:
在这个例子中,首先,所有状态= 1的UID是通过子查询的查询语句,和实际的查询是相似的:
SELECT * FROM文章,UID在(1,2)
MySQL的标量子查询
标量子查询是一个标量单值的子查询返回的,如一个数字或字符串,和最简单的形式返回子查询。
一个标量子查询的一个例子如下:
SELECT * FROM文章,UID =(选择UID从用户地位= 1阶)
在这个例子中,子查询语句:
选择用户状态= 1的UID,UID DESC LIMIT 1
返回是一个单一的数字(例如2),实际的查询语句是:
SELECT * FROM文章,uid = 2
使用子查询比较
你可以使用= > = =操作符比较标量子查询的结果,和通常的子查询的位置是在比较型的右侧:
SELECT * FROM T1其中column1 =(选择最大(column2)从T2)
提示
对于一个运营商相比,子查询必须返回一个标量。唯一的例外是=可用于同时行子查询。
子查询、表的连接
在许多情况下,查询效果很相似,连接表。然而,在某些特殊情况下,使用子查询代替表是必要的。
SELECT * FROM T1其中column1 =(选择最大(column2)从T2)
下一个例子:
SELECT * FROM第T 2 =(select count(*)的文章,article.uid =)
本例试图找出用户在2篇文章中发表的所有文章记录:
条条表:
用户用户表:
查询返回的结果如下所示: