mysql

MySQL cross join应用案例

小樊
90
2024-08-02 12:40:11
栏目: 云计算

假设我们有两个表,一个是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操作获取了所有学生和所有课程的组合。这种操作在需要获取多个表之间的所有可能组合时非常有用。

0
看了该问题的人还看了