sql-笛卡尔积

测试页面数据导出时出现一个Bug,导出的数据比页面数据多几条,且有些字段值是乱码。在开发那儿了解到时sql查询的问题,之后仔细了解是笛卡尔积导致的问题

1、什么是笛卡尔积?

笛卡尔积又称为笛卡尔乘积,笛卡尔积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。

 

 

 

 

2、笛卡尔积查询语句

 在sql中,笛卡尔积又叫cross join , 是两表连接的一种方式,接下来根据查询结果来展示笛卡尔积

有两个表student, subject表,表里面的数据条数是不对应的

 

 

 

-会产生笛卡尔积的查询,这时候sudent表的每条数据都对应了subject表里的两条数据,这就导致了数据重复,

 

 

-不会产生笛卡尔积的语句

 

 

 

 3、笛卡尔积产生的原因

  根据两条查询语句可以知道是缺少了关联条件,解决办法就是加上关联条件。但是在一些特殊的开发需求中,笛卡尔积正好能实现我们的一些需求。

  

 

posted @ 2022-12-12 17:19  临夏1005  阅读(1809)  评论(0编辑  收藏  举报