zoukankan      html  css  js  c++  java
  • MySQL教程81-MySQL子查询注意事项

    在完成较复杂的数据查询时,经常会使用到子查询,编写子查询语句时,要注意如下事项。

    1) 子查询语句可以嵌套在 SQL 语句中任何表达式出现的位置

    在 SELECT 语句中,子查询可以被嵌套在 SELECT 语句的列、表和查询条件中,即 SELECT 子句,FROM 子句、WHERE 子句、GROUP BY 子句和 HAVING 子句。

    前面已经介绍了 WHERE 子句中嵌套子查询的使用方法,下面是子查询在 SELECT 子句和 FROM 子句中的使用语法。

    嵌套在 SELECT 语句的 SELECT 子句中的子查询语法格式如下。

    SELECT (子查询) FROM 表名;
    提示:子查询结果为单行单列,但不必指定列别名。

    嵌套在 SELECT 语句的 FROM 子句中的子查询语法格式如下。

    SELECT * FROM (子查询) AS 表的别名;
    注意:必须为表指定别名, 不查询*的时候可以根据别名指定列名, 一般返回多行多列数据记录,可以当作一张临时表。

    2) 只出现在子查询中而没有出现在父查询中的表不能包含在输出列中

    多层嵌套子查询的最终数据集只包含父查询(即最外层的查询)的 SELECT 子句中出现的字段,而子查询的输出结果通常会作为其外层子查询数据源或用于数据判断匹配。

    常见错误如下:

    SELECT * FROM (SELECT * FROM result);

    这个子查询语句产生语法错误的原因在于主查询语句的 FROM 子句是一个子查询语句,因此应该为子查询结果集指定别名。正确代码如下。

    SELECT * FROM (SELECT * FROM result) AS Temp;
  • 相关阅读:
    SpringMVC日期类型转换问题三大处理方法归纳
    java 生成execl下载
    阿里maven仓库地址 和 oschina maven仓库地址
    hibernate基础学习
    学习struts2
    Linux下的/dev/sr0
    Oracle 19c(19.3) 单机数据库静默安装
    [转]Oracle 19C的下载和安装部署(图形安装和静默安装)
    CDH entropy was available 问题解决
    CDH当中NFS GATEWAY实例启动失败
  • 原文地址:https://www.cnblogs.com/no-celery/p/13551968.html
Copyright © 2011-2022 走看看