MySQL 联合查询
MySQL 联合查询
在 MySQL 中,联合查询(也称为 JOIN 查询)是一种用于将多个表中的数据联接在一起的操作。这使得你可以从多个表中获取相关的数据,并创建复杂的查询。
以下是一些常见的联合查询类型和示例:
- 内连接(INNER JOIN):内连接用于获取两个或多个表之间具有匹配行的数据。只有在两个表之间存在匹配时,内连接才会返回数据。
SELECT column1, column2
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
- 左连接(LEFT JOIN):左连接获取左表中的所有行,以及与右表中匹配的行。如果右表中没有匹配的行,将显示 NULL 值。
SELECT column1, column2
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;
- 右连接(RIGHT JOIN):右连接获取右表中的所有行,以及与左表中匹配的行。如果左表中没有匹配的行,将显示 NULL 值。
SELECT column1, column2
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
- 全外连接(FULL OUTER JOIN):全外连接获取两个表中的所有行,如果在一个表中没有匹配的行,将显示 NULL 值。
SELECT column1, column2
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name
UNION
SELECT column1, column2
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
- 自连接:自连接是一种特殊的联合查询,用于将同一表中的不同行进行关联。这通常涉及使用不同的表别名来区分两个表实例。
SELECT e1.employee_name, e2.employee_name AS manager_name
FROM employees e1
LEFT JOIN employees e2 ON e1.manager_id = e2.employee_id;
这只是一些联合查询的示例,你可以根据需要使用不同的连接类型和多个表来创建更复杂的查询。确保你理解你的数据模型和查询需求,以选择适当的联接类型。