教程 sqlite tutorial

子查询

子查询是指在一个 SQL 语句中嵌套另一个查询,作为条件或数据源,提升查询灵活性。

基本用法

子查询可以放在 SELECT、WHERE、FROM 等语句中。

1. 在 WHERE 中使用子查询

查询年龄大于所有管理员年龄的用户:

sql
SELECT * FROM users
WHERE age > (SELECT MAX(age) FROM admins);

2. 在 FROM 中使用子查询(派生表)

查询每个年龄的用户数量,并筛选数量大于 5 的年龄段:

sql
SELECT age, user_count FROM (
  SELECT age, COUNT(*) AS user_count
  FROM users
  GROUP BY age
) WHERE user_count > 5;

3. 在 SELECT 中使用子查询

查询每个用户最新订单时间:

sql
SELECT name,
  (SELECT MAX(order_date) FROM orders WHERE user_id = users.id) AS last_order
FROM users;

子查询的优势

  • 实现复杂条件筛选
  • 代替多步查询,简化操作
  • 与 JOIN 结合提升查询效率

合理使用子查询,能够有效增强 SQLite 查询的表达力和功能。