SIMPLE(简单查询)
假设我们有一个名为 users 的表,包含列 id、name 和 age,其中 id 列是主键
SELECT * FROM users WHERE age > 25;
PRIMARY(主查询)
SELECT * FROM users WHERE id = 1;
SUBQUERY(子查询)
SELECT name, age
FROM users
WHERE age > (SELECT AVG(age) FROM users);
UNION(联合查询)
UNION 用于合并两个或多个 SELECT 语句的结果集,并去除重复行。
SELECT name FROM table1
UNION
SELECT name FROM table2;
DEPENDENT SUBQUERY(相关子查询)
假设我们有一个名为 orders 的表格,包含列 order_id、customer_id 和order_amount。
SELECT customer_id, order_amount
FROM orders
WHERE order_amount > (SELECT AVG(order_amount) FROM orders WHERE customer_id = orders.customer_id);
UNCACHEABLE SUBQUERY(不可缓存的子查询)
在 MySQL 中,不可缓存子查询(Uncacheable Subquery)是指子查询的结果无法被缓存以供外部查询重复使用。这通常发生在包含不可确定性或依赖于外部上下文的子查询中。以下是一个不可缓存子查询的示例:
假设我们有一个名为 orders 的表格,包含列 order_id、customer_id 和 order_date。
SELECT customer_id, order_date
FROM orders
WHERE order_date > (SELECT MAX(order_date) FROM orders);
UNION RESULT(联合结果)
在 MySQL 中,UNION RESULT 不是一个特定的查询类型,而是表示 MySQL 在执行 UNION 操作时内部生成的临时表。UNION RESULT 表示 UNION 操作的结果集。
UNION 运算符用于合并多个 SELECT 语句的结果集,并返回一个合并后的结果集。以下是一个示例,展示如何使用 UNION 运算符:
(SELECT id, name FROM table1)
UNION
(SELECT id, name FROM table2);