码迷,mamicode.com
首页 > 数据库 > 详细

sql中的笛卡尔积

时间:2018-07-02 16:16:01      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:集合   解决办法   数据库   bsp   tps   冗余   nbsp   对象   连接   

sql中的笛卡尔积

        我们对数据库表进行操作时,经常会对多张表进行关联,多表连接查询大家肯定不会陌生,但是一不小心很容易出来庞大冗余的数据。

 

笛卡尔积数学概念

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

        笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。 简单的说就是两个集合相乘的结果。 

        假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

 

 

解决办法

        这样冗余的数据可不是我们想要,所以想要你的结果避免笛卡尔积,既要做到以下几点:

        1.关联范围在最小粒度的列。

        2.如果是三张表连接,并且是1:n:n的关系,就要先关联两张表,然后将两张表关联的结果与第三表在进行关联,这样就可以取得我们想要的结果啦!多张表同理!

 

参考:https://blog.csdn.net/weienjun/article/details/80869478

sql中的笛卡尔积

标签:集合   解决办法   数据库   bsp   tps   冗余   nbsp   对象   连接   

原文地址:https://www.cnblogs.com/Allen-rg/p/9254230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!