假设我们有两个表,一个是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_nameFROM studentsCROSS JOIN courses;这将得到如下结果集:
student_name | course_name-------------|------------Alice | MathAlice | ScienceAlice | HistoryBob | MathBob | ScienceBob | HistoryCharlie | MathCharlie | ScienceCharlie | History在这个例子中,我们使用CROSS JOIN操作获取了所有学生和所有课程的组合。这种操作在需要获取多个表之间的所有可能组合时非常有用。