数据库

MySQL的三种子查询

2022-03-10  本文已影响0人  软件测试大田

今天学习 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 ('家电', '鞋服'));

图片

今天先学一点点,明天见

上一篇 下一篇

猜你喜欢

热点阅读