hi
今天有事,一会儿要去耍,能学多少是多少吧
1、MySQL
-----子查询与连接(二)-----
----子查询
子查询,是指出现在其他SQL语句内的SELECT子句
注意:子查询指嵌套在查询内部,且必须始终出现在圆括号内;可以包含多个关键字或条件;外层查询可以是SELECT,INSERT,UPDATE,SET或DO
子查询的返回,可以是标量、一行、一列或者是一个子查询
可以分为三类:使用比较运算符的=,>=等;NOT IN ;EXIST
----使用比较运算符实现子查询
--
mysql> SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=5391.30;
这里的数字可以不用管,就是之前获取的一个平均值。
所以要是想直接得到这个平均值参与的结果,用子查询这样写
mysql> SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=(SELECT ROUND(AVG(goods_price),2) FROM tdb_goods);
这里可以看到,子查询在小括号中,用到了>=
--
当子查询返回多个结果,而主查询用不到这么多时,可以用ANY SOME ALL关键字
其中ANY和SOME一样,满足其中一个就好,具体是哪个 要看运算符是什么(比如>就大于最小值就行)
ALL要求满足所有返回的要求
用法是写在子查询小括号的前面
----由IN或NOT IN引发的子查询
其实IN 与=ALL运算符等价,NOT IN与=!ALL等价
用法也类似
----EXIST
返回布尔值,用的很少