企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
笛卡尔积是关系代数里的一个概念,通俗的说<mark>就是两个集合中的每一个成员,都与对方集合中的任意一个成员有关联。 <br/> 笛卡尔积在SQL中的实现方式是交叉连接(cross join),或者在SQL查询中,如left join、right join、full join、inner join,<mark>对两张表join查询而没有on条件,或者无效的on条件</mark>,也会产生笛卡尔积。 ```sql -- 进行join查询而没有条件限制时会产生笛卡尔积 select * from student, class; select * from student join class; -- 进行join查询但条件有效的on条件时不产生笛卡尔积 select * from student, class where student.id = class.student_id; select * from student join class student.id=class.student_id; ``` 在实际应用中,笛卡尔积本身大多没有什么实际用处,只有在两个表连接时加上限制条件,才会有实际意义。 <br/> Hive 只能使用 1 个 reducer 来完成笛卡尔积,会导致计算性能较低。