在MySQL中,连接(JOIN)是一种将多个表中的数据组合在一起的方法
- INNER JOIN:返回两个表中具有匹配键值的行。
- LEFT JOIN(或LEFT OUTER JOIN):返回左表中的所有行,以及与右表中匹配的行。如果没有匹配项,则返回NULL值。
- RIGHT JOIN(或RIGHT OUTER JOIN):返回右表中的所有行,以及与左表中匹配的行。如果没有匹配项,则返回NULL值。
- FULL JOIN(或FULL OUTER JOIN):返回左表和右表中的所有行。如果没有匹配项,则返回NULL值。
以下是一个简单的示例,说明如何使用INNER JOIN连接两个表:
假设我们有两个表:employees
和 departments
。
employees
表结构如下:
id | name | department_id |
---|---|---|
1 | Alice | 1 |
2 | Bob | 2 |
3 | Carol | 1 |
departments
表结构如下:
id | name |
---|---|
1 | HR |
2 | IT |
现在,我们想要查询每个员工及其所属部门的信息。我们可以使用INNER JOIN来实现这一目标:
SELECT employees.name AS employee_name, departments.name AS department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id;
查询结果如下:
employee_name | department_name |
---|---|
Alice | HR |
Bob | IT |
Carol | HR |
这个查询将employees
表和departments
表连接在一起,基于它们的department_id
和id
列匹配。