子查询

子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。

例如,SELECT * FROM t1 WHERE col1=(SELECT col2 FROM t2)

其中SELECT * FROM t1 WHERE col1,称为Out Query/Out Statement 

SELECT col2 FROM t2,称为Subquery。

子查询必须出现在圆括号之间。

 

使用比较运算符的子查询

比较运算符:=,<,>,<=,>=,<>,!=,<=>

 

-- 求所有电脑产品的平均价格,并且保留两位小数(AVG,MAX,MIN,COUNT,SUM为聚合函数)

   SELECT ROUND(AVG(goods_price),2) AS avg_price FROM tdb_goods;

-- 查询所有价格大于平均价格的商品,并且按价格降序排序

   SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price > 5845.10 ORDER BY goods_price DESC;
  
-- 使用子查询来实现

  SELECT goods_id,goods_name,goods_price FROM tdb_goods 


  WHERE goods_price > (SELECT ROUND(AVG(goods_price),2) AS avg_price FROM tdb_goods) 

 

-- 查询类型为“超记本”的商品价格

 
   SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本';

-- 查询价格大于或等于"超级本"价格的商品,并且按价格降序排列

 
   SELECT goods_id,goods_name,goods_price FROM tdb_goods 

   WHERE goods_price = ANY(SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本')

   ORDER BY goods_price DESC;
   

-- = ANY 或 = SOME 等价于 IN

   SELECT goods_id,goods_name,goods_price FROM tdb_goods 

   WHERE goods_price IN (SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本')

   ORDER BY goods_price DESC; 

转载于:https://my.oschina.net/u/3648696/blog/1524393

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值