1. 什么是表?
- 表就像一张大表格,里面有很多行和列。比如:
- 一个表叫“学生表”,里面有每个学生的名字、年龄、班级。
- 另一个表叫“成绩表”,里面有每个学生的成绩。
2. 为什么要联合查询?
- 有时候,我们需要把两张表的信息拼在一起看。比如:
- 你想知道每个学生的名字和他们的成绩,但名字在“学生表”里,成绩在“成绩表”里。
- 这时候就需要把两张表联合起来查询。
3. 什么是JOIN?
- `JOIN`就像把两张表用胶水粘在一起。
- 粘在一起的条件是:两张表里有一些相同的东西(比如学生的学号)。
4. 怎么用JOIN联合查询?
- 假设有两张表:
- 学生表:
| 学号 | 名字 | 年龄 |
|------|-------|------|
| 1 | 小明 | 10 |
| 2 | 小红 | 11 |
| 3 | 小刚 | 10 |
- 成绩表:
| 学号 | 科目 | 成绩 |
|------|------|------|
| 1 | 数学 | 90 |
| 2 | 语文 | 85 |
| 3 | 英语 | 88 |
- 如果我们想查每个学生的名字和成绩,可以这样写:
SELECT 学生表.名字, 成绩表.成绩
FROM 学生表
JOIN 成绩表
ON 学生表.学号 = 成绩表.学号;
- 解释:
- `SELECT 学生表.名字, 成绩表.成绩`:选择“名字”和“成绩”这两列。
- `FROM 学生表`:从“学生表”里找数据。
- `JOIN 成绩表`:把“学生表”和“成绩表”粘在一起。
- `ON 学生表.学号 = 成绩表.学号`:粘在一起的条件是“学号”要相同。
- 结果:
| 名字 | 成绩 |
|------|------|
| 小明 | 90 |
| 小红 | 85 |
| 小刚 | 88 |
5. JOIN的种类:
- INNER JOIN:只返回两张表里都有的数据(比如学号在两个表里都存在的学生)。
- LEFT JOIN:返回左边表的所有数据,即使右边表没有匹配的数据。
- RIGHT JOIN:返回右边表的所有数据,即使左边表没有匹配的数据。
- FULL JOIN:返回两张表的所有数据,不管有没有匹配。
6. 举个例子:
- 如果“学生表”里有一个学生“小丽”,但“成绩表”里没有她的成绩:
- 用`INNER JOIN`:小丽不会出现在结果里。
- 用`LEFT JOIN`:小丽会出现在结果里,但成绩是空的。
总结:
- `JOIN`就是把两张表粘在一起,按照某个条件(比如学号相同)来查数据。
- 常用的`JOIN`有`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`等。