更新时间:2022-02-22 GMT+08:00

笛卡尔连接

功能描述

笛卡尔连接把第一个表的每一条记录和第二个表的所有记录相连接,如果第一个表的记录数为m, 第二个表的记录数为n,则会产生m*n条记录数。

语法格式

1
2
SELECT attr_expr_list FROM table_reference
  CROSS JOIN table_reference ON join_condition;

关键字

join_condition:连接条件,如果该条件恒成立(比如1=1),该连接就是笛卡尔连接。所以,笛卡尔连接输出的记录条数等于被连接表的各记录条数的乘积,若需要进行笛卡尔积连接,需使用专门的关键词CROSS JOIN。CROSS JOIN是求笛卡尔积的标准方式。

注意事项

所要进行JOIN连接的表必须是已经存在的表,否则会出错。

示例

返回student_info与course_info两张表中学生姓名与课程名称的所有组合。

1
2
SELECT student_info.name, course_info.courseName FROM student_info
  CROSS JOIN course_info ON (1 = 1);