美文网首页
MySQL学习日记(18)子查询

MySQL学习日记(18)子查询

作者: copymaker | 来源:发表于2021-02-08 13:50 被阅读0次

子查询是什么

子查询(Subquery)就是出现在其他MySQL语句中的查询,也就是查询中的查询(当然不一定要在查询语句中嵌套)
例如:

#查找数据1表中 列字段 等于数据表2的列字段
SELECT * FROM 数据1 WHERE 列字段= (SELECT 列字段 FROM 数据表2);

其中SELECT * FROM 数据1,称为父查询(Outer Query/Outer Statement)
SELECT 列字段 FROM 数据表2,被称为子查询(SubQuery)

  • 子查询必要要加括号
  • 子查询可以使用关键字和条件,如: DISTINCT、 GROUP BY、ORDER BY、LIMIT、 函数等。
  • 父查询不仅只是查询,也可是是SELECT,INSERT,UPDATE ,SET或DO
  • 子查询可以返回标量、一行、一列或子查询。

为什么要用子查询

试想对比 或者插入另一个表的值,还要先查询另一个表,获得值后在插入非常麻烦,不如直接将查询结果进行对比,或者插入省事

怎么使用

mysql> SELECT * FROM 运算符例子;
+----+------+
| id | 数值 |
+----+------+
|  1 |    1 |
|  2 |    3 |
|  3 |    5 |
|  4 |    7 |
|  5 |    9 |
|  6 |   11 |
|  7 |   13 |
+----+------+
7 rows in set (0.01 sec)

mysql> SELECT * FROM 运算符例子2;
+----+------+
| id | 数值 |
+----+------+
|  1 |    2 |
|  2 |    4 |
|  3 |    6 |
|  4 |    8 |
|  5 |   10 |
|  6 |   12 |
|  7 |   14 |
+----+------+
7 rows in set (0.00 sec)

#查找 运算符例子表中 数值小于 运算符例子2表中 id=5(10)的数据
mysql> SELECT id,数值 FROM 运算符例子 WHERE 数值 < (SELECT 数值 FROM 运算符例子2 WHERE id=5);
+----+------+
| id | 数值 |
+----+------+
|  1 |    1 |
|  2 |    3 |
|  3 |    5 |
|  4 |    7 |
|  5 |    9 |
+----+------+
5 rows in set (0.00 sec)
#10>9=1(true)
mysql> SELECT (SELECT 数值 FROM 运算符例子2 WHERE id=5) > (SELECT 数值 FROM 运算符例子 WHERE id = 1) AS 比较;
+------+
| 比较 |
+------+
|    1 |
+------+
1 row in set (0.00 sec)
#10<9=0(false)
mysql> SELECT (SELECT 数值 FROM 运算符例子2 WHERE id=5) < (SELECT 数值 FROM 运算符例子 WHERE id = 1) AS 比较;
+------+
| 比较 |
+------+
|    0 |
+------+
1 row in set (0.00 sec)

相关文章

  • MySQL学习日记(18)子查询

    子查询是什么 子查询(Subquery)就是出现在其他MySQL语句中的查询,也就是查询中的查询(当然不一定要在查...

  • MySQL 子查询、内联结、外联结

    子查询MySQL 子查询版本要求:MySQL4.1引入了对子查询的支持。子查询:嵌套在其他查询语句中的查询。 示例...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • 【MySQL】MySQL查询——子查询

    查出本网站,最新的(goods_id最大)的商品select goods_id,goods_name,cat_id...

  • 第六章 查询性能优化(下)

    MySQL查询优化器的局限性 关联子查询 MySQL的关联子查询实现的很差,最好改成左外连接(LEFT OUTER...

  • 查询性能优化

    MySQL查询优化器的局限性 关联子查询 MySQL的子查询实现的非常糟糕,最糟糕的一类查询是where条件中包含...

  • MySql查询-子查询

    子查询 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为...

  • MySQL--基础二

    本节总结MySQL的筛选条件,聚合与分组,子查询,连接查询。 MySQL的筛选条件 MySQL中的比较运算符: 比...

  • sql查询优化

    本文来自高性能mysql第6章的总结 问题 我学习mysql的时候,发现了子查询和并列查询结果一样,但是我不知道哪...

  • mysql子查询

    聚合函数 聚合函数对一组值执行计算,并返回单个值。 除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与...

网友评论

      本文标题:MySQL学习日记(18)子查询

      本文链接:https://www.haomeiwen.com/subject/abwxxltx.html