sql 子查询 嵌套查询

In the real world, there are times when we need a particular set of data but we don’t have the exact details for getting the data set. In such cases, we try to get the information from the available set of information that we have. To achieve such target we use SQL subquery.

在现实世界中,有时候我们需要特定的数据集,但是我们没有获取数据集的确切细节。 在这种情况下,我们尝试从现有的可用信息集中获取信息。 为了实现这样的目标,我们使用SQL子查询。

SQL子查询 (SQL Subquery)

SQL subquery is a query nested inside another query. Most of the subqueries are used with WHERE clause of a query.

SQL子查询是嵌套在另一个查询中的查询。 大多数子查询与查询的WHERE子句一起使用。

SQL子查询规则 (SQL Subquery Rules)

  • A Subquery can be used with different SQL clauses like WHERE clause, HAVING clause and FROM clause.子查询可以与不同SQL子句(如WHERE子句,HAVING子句和FROM子句)一起使用。
  • Subqueries can be used with SELECT, UPDATE, INSERT and DELETE statements also.子查询也可以与SELECT , UPDATE , INSERT和DELETE语句一起使用。
  • The order of execution starts from subquery first then the main query.执行顺序从子查询开始,然后是主查询。
  • The Subquery must be enclosed in parentheses.子查询必须用括号括起来。
  • An ORDER BY command cannot be used in a subquery, even though the main query can use an ORDER BY. The GROUP BY command can be used to perform the same function as the ORDER BY in a subquery.一个借命令命令不能在子查询中使用,即使主查询就可以使用ORDER BY。 GROUP BY命令可用于执行与子查询中的ORDER BY相同的功能。
  • When a subquery is used along with a comparison operator it should be on the right side of the comparison operator.当子查询与比较运算符一起使用时,它应位于比较运算符的右侧。

SQL子查询语法 (SQL Subquery Syntax)

SELECT column_name FROM table_name
WHERE column_name OPERATOR (SELECT column_name FROM table_name WHERE condition);

The query inside the parenthesis after the OPERATOR is the subquery and the query outside the parenthesis is the main query.

OPERATOR之后在圆括号内的查询是子查询,而在圆括号外的查询是主查询。

SQL子查询示例 (SQL Subquery Example)

Let us consider the following two tables in order to understand Subquery in a better way.

让我们考虑以下两个表,以便更好地理解子查询。

Student

学生

Roll No Name Age Gender
1 Amit 12 M
2 John 13 M
3 Diana 14 F
4 Henry 15 M
卷号 名称 年龄 性别
1个 阿米特 12 中号
2 约翰 13 中号
3 戴安娜 14 F
4 亨利 15 中号

Class

Class Section Roll No
6 A 1
7 A 2
8 A 3
9 B 4
部分 卷号
6 一个 1个
7 一个 2
8 一个 3
9 4

Please find below the MySQL queries to create the tables and insert the data.

请在下面MySQL查询中查找以创建表并插入数据。

CREATE TABLE `student` (`RollNo` INT NOT NULL,`Name` VARCHAR(45) NULL,`Age` INT NULL,`Gender` VARCHAR(45) NULL,PRIMARY KEY (`RollNo`));CREATE TABLE `class` (`ClassNo` INT NOT NULL,`Section` VARCHAR(45) NULL,`RollNo` INT NULL,PRIMARY KEY (`ClassNo`));INSERT INTO `student` (`RollNo`, `Name`, `Age`, `Gender`)
VALUES(1, 'Amit', 12, 'M'),(2, 'John', 13, 'M'),(3, 'Diana', 14, 'F'),(4,'Henry', 15,'M');INSERT INTO `class` (`ClassNo`, `Section`, `RollNo`)
VALUES(6, 'A', 1),(7, 'A', 2),(8, 'A', 3),(9,'B', 4);

Let us try to look into some examples using SQL subqueries.

让我们尝试研究一些使用SQL子查询的示例。

  1. SQL subquery for getting all the student’s name with section ‘A’SQL子查询,用于获取“ A”部分的所有学生姓名
  2. SELECT Name FROM student
    WHERE RollNo IN (SELECT RollNo FROM class WHERE section = 'A')
    Name
    Amit
    John
    Diana
    名称
    阿米特
    约翰
    戴安娜

    SQL SubQuery with IN operator

    带IN运算符SQL SubQuery

  3. SQL subquery with class greater than 7类大于7SQL子查询
  4. SELECT * FROM student
    WHERE RollNo IN (SELECT RollNo FROM class WHERE ClassNo>7)
    RollNo Name Age Gender
    3 Diana 14 F
    4 Henry 15 M
    卷号 名称 年龄 性别
    3 戴安娜 14 F
    4 亨利 15 中号

SQL subquery with Greater than operator

具有大于运算符SQL子查询

翻译自: https://www.journaldev.com/23945/sql-subquery-nested-query-sql

sql 子查询 嵌套查询

sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询相关推荐

  1. Mysql 查询blob数据很慢,关于oracle中clob字段查询慢的问题及解决方法

    关于oracle中clob字段查询慢的问题及解决方法 最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了. blob字段直 ...

  2. 2021泌阳高考成绩查询,驻马店教育局网站2021年泌阳中招成绩查询系统

    驻马店教育局网站2021年泌阳中招成绩查询系统 驻马店教育局官网(http://edu.zhumadian.gov.cn)是2021泌阳中考官方网站,驻马店市教育局网站edu.zhumadian.go ...

  3. 潢川高中2021高考成绩查询,信阳市教育体育局官网2021潢川中招成绩查询系统

    信阳市教育体育局官网2021潢川中招成绩查询系统 信阳市教育体育局官网2021潢川中招成绩查询系统 信阳教育体育局官网(http://jytyj.xinyang.gov.cn)是2021潢川中考官方网 ...

  4. 2021潢川中学高考成绩查询,信阳市教育体育局官网2021潢川中招成绩查询系统

    信阳市教育体育局官网2021潢川中招成绩查询系统 信阳教育体育局官网(http://jytyj.xinyang.gov.cn)是2021潢川中考官方网站,信阳市教育局网站jytyj.xinyang.g ...

  5. 数据库查询求小于_SQL学习笔记(二)简单查询

    本篇主要学习如何通过简单查询获取想要的数据. 从零学会SQL:简单查询​www.zhihu.com 基本的查询语句 从数据库中查找数据时要使用select子句,select子句是sql中使用最多.最基 ...

  6. mysql怎么查询不是张姓的_mysql 中的常用查询

    查询语句:select 字段 from 表名 : 字段别名:as  给字段或者 表名 一个表名 为了显示方便起见,可以设置字段别名. select 后面选项 all 代表不去除重复行,distinct ...

  7. Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。...

    maven使用: <!--redis jar包--><dependency><groupId>redis.clients</groupId><ar ...

  8. php mongo 查询count,[PHP] 使用PHP在mongodb中进行count查询

    原文:https://www.cnblogs.com/taoshihan/p/12362111.html 在php7的mongodb扩展中,当要查询某个集合在某个条件下的数据个数时,可以使用下面的方式 ...

  9. mybatis 使用in 查询时报错_MyBatis(四):mybatis中使用in查询时的注意事项

    packagecom.boco.jobmonitor.model;importjava.util.Date;importjavax.persistence.GeneratedValue;importj ...

  10. rownum sql值获取一个值_sql - 用MySQL计算中值的简单方法

    sql - 用MySQL计算中值的简单方法 使用MySQL计算中值的最简单(并且希望不是太慢)的方法是什么? 我用val来查找平均值,但我很难找到一种计算中位数的简单方法. 现在,我将所有行返回给PH ...

最新文章

  1. 5.1. Instructions Instead of Data
  2. Android各组件/控件间通信利器之EventBus
  3. poj2305-Basic remains(进制转换 + 大整数取模)
  4. Shell脚本传递带有空格的参数
  5. php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法
  6. 中科大 计算机网络16 P2P应用
  7. python 如何定义n个变量 (变量声明自动化)
  8. 无法取消 Promise
  9. colorpicker插件和使用(直接能用真美好)
  10. LabVIEW开发实战:Labview简介
  11. 蓝牙小票机php接口,Android蓝牙打印小票,仿美团外卖小票打印
  12. Django 字段选项之 related_name 和 related_query_name
  13. 区块链大咖谈之陈昌:联盟链和公有链混合架构如何实现?
  14. 如何利用CSS制作星星图案
  15. Windows.old可以删除吗?
  16. Android超强大的粒子动画库,流星雨,爆炸,满屏飞花,等粒子特效快速实现
  17. iOS10全新方法实现推送+deviceToken无法获取或无效的解决
  18. 数据库常用命令及关键字
  19. Excel怎么把横排变竖排,一键转换表格格式
  20. 淘宝上传图片太大怎么办?怎么把图片压缩变小?

热门文章

  1. 获取IP及判断IP是否在区间
  2. 数据平台之企业营销管理与分析平台建设
  3. [转载] python bytearray拼接_python-4-bytes和bytearray
  4. [转载] Python 多项式拟合(一元回归)
  5. [转载] python复数类型-Python 复数属性和方法操作实例
  6. [转载] 5.2 calendar--通用日期的相关函数(4)
  7. Python第十课(函数3)
  8. 浏览器提取已安装扩展教程
  9. 返回表对象的方法之一--bulk collect into
  10. 每天一个linux命令(60):scp命令