今天学习 MySQL 子查询,先来干货再看看实际中如何运用。
一、何为子查询?
一条 select 查询语句的结果, 作为另一条 select 语句的一部分。
二、子查询特点?
1、子查询要放在小括号里
2、子查询作为父查询的查询条件使用。
三、子查询分类?
1、where 型语法:
SELECT 查询字段 FROM 表 WHERE 字段=(子查询);
2、from 型语法:
SELECT 查询字段 FROM (子查询)表别名 WHERE 条件;
3、exists 型( in 函数)语法:
SELECT 查询字段 FROM 表 WHERE 字段 IN (子查询);
四、举例子说明实际中如何使用
有 products 商品表
有 category 类目表:
1、where 型例子:
通过子查询的方式, 查询价格最高的商品信息
# 通过子查询的方式, 查询价格最高的商品信息
# 1.首先查询出最高价格
SELECT MAX(price) FROM products;
# 2.将最高价格作为条件,获取商品信息
SELECT * FROM products WHERE price
= (SELECT MAX(price) FROM products);
2、from 型例子:
查询商品中,价格大于500的商品信息,包括 商品名称 商品价格 商品所属分类名称
select
p.`pname`,
p.`price`,
c.cname
from
products p
inner join (
select
*
from
category) c on # 此处c:子查询作为一张表使用时,要起别名,才能访问表中字段
p.`category_id` = c.cid
where
p.`price` > 500;
3、exists 型例子:
查询家电类与鞋服类下面的全部商品信息
select
*
from
products
where
category_id in (
select
cid
from
category
where
cname in ('家电', '鞋服'));
今天先学一点点,明天见
相关文章
暂无评论...