在SQL的世界里,数据连接是查询的核心之一。今天,我们用一个简单的例子来展示笛卡尔积(Cartesian Product)、内连接(INNER JOIN)和外连接(OUTER JOIN)的区别!💪
假设我们有两个表:`students` 和 `courses`。
📚 students 表
| id| name |
|------|--------|
| 1| Alice|
| 2| Bob|
📚 courses 表
| id| course_name |
|------|-------------|
| 1 | Math|
| 2 | Science |
当我们执行笛卡尔积时,结果会是两个表的所有可能组合。😱
结果如下:
| students.id | students.name | courses.id | courses.course_name |
|-------------|---------------|------------|---------------------|
| 1 | Alice | 1| Math|
| 1 | Alice | 2| Science |
| 2 | Bob | 1| Math|
| 2 | Bob | 2| Science |
内连接只显示两个表中匹配的记录。🎯
结果为:
| students.id | students.name | courses.id | courses.course_name |
|-------------|---------------|------------|---------------------|
| 1 | Alice | 1| Math|
左外连接则保留左表的所有记录,即使没有匹配项也会显示。.LEFTWARDS_ARROW:
结果为:
| students.id | students.name | courses.id | courses.course_name |
|-------------|---------------|------------|---------------------|
| 1 | Alice | 1| Math|
| 2 | Bob | NULL | NULL|
通过这些示例,我们可以更好地理解SQL连接的奥秘!🚀