MySQL cross join应用案例

avatar
作者
猴君
阅读量:0

假设我们有两个表,一个是students表,包含学生的姓名和学号,另一个是courses表,包含课程的名称和课程号。我们希望得到一个包含所有学生和所有课程的组合的结果集。

首先,创建students表并插入一些数据:

CREATE TABLE students (     student_id INT PRIMARY KEY,     student_name VARCHAR(50) );  INSERT INTO students (student_id, student_name) VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie'); 

然后创建courses表并插入一些数据:

CREATE TABLE courses (     course_id INT PRIMARY KEY,     course_name VARCHAR(50) );  INSERT INTO courses (course_id, course_name) VALUES (101, 'Math'), (102, 'Science'), (103, 'History'); 

现在,使用CROSS JOIN操作来获取所有学生和所有课程的组合:

SELECT students.student_name, courses.course_name FROM students CROSS JOIN courses; 

这将得到如下结果集:

student_name | course_name -------------|------------ Alice        | Math Alice        | Science Alice        | History Bob          | Math Bob          | Science Bob          | History Charlie      | Math Charlie      | Science Charlie      | History 

在这个例子中,我们使用CROSS JOIN操作获取了所有学生和所有课程的组合。这种操作在需要获取多个表之间的所有可能组合时非常有用。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!