SQLite 子查询

子查询,又称为内部查询 或 嵌套查询,是在一个 SQLite 语句中的 WHERE 子句中嵌入另一个 SQL 查询语句

子查询 返回的数据可以被用在主查询中作为条件,以进一步限制要检索的数据

子查询的语法格式一般如下

[COMMAND] FROM tablename WHERE fieldname [op] ([sub query])
  1. [COMMAND] 可以是 SELECT、INSERT、UPDATE 和 DELETE
  2. [op] 可以是运算符 =、<、>、>=、<=、IN 等
  3. [sub query] 就是一个子查询

例如下面的查询语句包含了一个子查询

SELECT * FROM tbl_employee  WHERE id IN (
    SELECT id FROM tbl_employee WHERE salary > 50000
);

这条语句的意思是先查询出 salary 大于 50000 的职工的 id 作为条件,筛选出这些人的所有信息

看起来比较简单,所以完全可以使用下面的语句代替

SELECT * FROM tbl_employee  WHERE id > 50000;

但如果涉及到复杂的查询,最好的方法就是乖乖的使用子查询

子查询规则

使用子查询时必须遵循以下几个规则

  1. 子查询必须用括号括起来

  2. 子查询在 SELECT 子句中只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较

  3. ORDER BY 不能用在子查询中,虽然主查询可以使用 ORDER BY,但子查询中可以使用 GROUP BY

  4. 如果子查询返回多于一行,则只能与多值运算符一起使用,如 IN 运算符

  5. BETWEEN 运算符不能与子查询一起使用,但是,BETWEEN 可在子查询内使用

范例

子查询可以用在 SELECT、INSERT、UPDATE 和 DELETE 语句中

  1. SELECT 中的子查询
  2. INSERT 中的子查询
  3. UPDATE 中的子查询
  4. DELETE 中的子查询

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

♥   简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.