笛卡尔连接
功能描述
笛卡尔连接把第一个表的每一条记录和第二个表的所有记录相连接,如果第一个表的记录数为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); |