1. 多表连接基础概念
连接类型
- 内连接(INNER JOIN):只返回两个表中匹配的记录
- 外连接(OUTER JOIN):
- 左外连接(LEFT JOIN):返回左表所有记录和右表匹配的记录
- 右外连接(RIGHT JOIN):返回右表所有记录和左表匹配的记录
- 全外连接(FULL OUTER JOIN):返回两个表中的所有记录
- 交叉连接(CROSS JOIN):返回两个表的笛卡尔积
2. 常用多表查询语法
INNER JOIN 语法
SELECT column_list
FROM table1
INNER JOIN table2 ON table1.column = table2.column;
LEFT JOIN 语法
SELECT column_list
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;
3. 实际应用场景
一对多关系查询
- 查询每个部门的员工信息
- 查询每个订单的详细商品信息
多对多关系查询
- 通过中间表连接两个主表
- 如学生选课系统中学生表和课程表通过选课表关联
4. 注意事项
- 使用表别名可以简化查询语句
- 连接条件要明确,避免产生笛卡尔积
- 注意NULL值的处理
- 合理使用索引提高查询效率
5. 子查询与连接的比较
- 某些情况下子查询可以被连接替代
- 连接通常比子查询性能更好
- 但子查询在某些复杂逻辑中更易理解