mysql的CROSS JOIN
时间: 2023-11-13 11:57:27 浏览: 119
CROSS JOIN 是一种关系型数据库中的一种表连接方式,它会将左表和右表中的每一行都进行组合,生成一个新的表。如果左表有m行,右表有n行,那么生成的新表就会有m*n行。CROSS JOIN 通常用于生成笛卡尔积。
下面是一个示例:
假设我们有两个表,一个是学生表,一个是课程表,它们的结构如下:
学生表:
| id | name |
|----|--------|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie|
课程表:
| id | course |
----|--------|
| 1 | Math |
| 2 | English|
| 3 | History|
如果我们想要生成一个新的表,其中包含所有学生和所有课程的组合,可以使用 CROSS JOIN:
```
SELECT *
FROM students
CROSS JOIN courses;
```
执行结果如下:
| id | name | id | course |
|----|---------|----|---------|
| 1 | Alice | 1 | Math |
| 1 | Alice | 2 | English |
| 1 | Alice | 3 | History |
| 2 | Bob | 1 | Math |
| 2 | Bob | 2 | English |
| 2 | Bob | 3 | History |
| 3 | Charlie | 1 | Math |
| 3 | Charlie | 2 | English |
| 3 | Charlie | 3 | History |
相关问题:
1. CROSS JOIN 和 INNER JOIN 的区别是什么?
2. CROSS JOIN 是否会影响查询
阅读全文