以下是 MySQL 中常用的查询语句构成部分及它们的一般顺序:
- SELECT - 用来指定需要选择的列。
- FROM - 指定数据来源的表。
- JOIN - 用来连接多张表。
- ON - 用来指定表连接时的条件(与 JOIN 搭配使用)。
- WHERE - 用来过滤记录的条件。
- GROUP BY - 用于依据某字段进行分组。
- HAVING - 用来进一步过滤分组后的记录。
- ORDER BY - 用来指定结果集的排序顺序。
- LIMIT - 用来限制返回记录的数量。
- UNION - 用来合并两个或多个 SELECT 语句的结果集。
例子: 不使用union时
sql
SELECT column1, column2
FROM table_name
JOIN another_table ON table_name.id = another_table.table_id
WHERE condition
GROUP BY column1
HAVING condition
ORDER BY column2
LIMIT 10;
使用UNION
sql
-- 第一个查询,使用 JOIN 和其他声明
SELECT column1, column2
FROM table_name
JOIN another_table ON table_name.id = another_table.table_id
WHERE condition
GROUP BY column1
HAVING condition
UNION
-- 第二个查询,使用 JOIN
SELECT a.column1, b.column2
FROM table1 a
JOIN table2 b ON a.id = b.foreign_id
WHERE a.some_condition;
-- 对合并后的结果进行排序和限制行数
ORDER BY column2
LIMIT 10;