主页 > 古家具 >

和我一起学编程系列(1):一文让你读懂数据库联合查询(sql joins)的原理,笛卡尔积 - qq_20759695的

时间:2019-03-07 19:26

来源:网络整理作者:admin点击:

体式与我如此的的体式差数。,让我们的看一眼。

率先有两组。,

A={1,2},B={3,4}" role="presentation" style="position: 对立;>A={1,2},B={3,4}

这么他们的笛卡尔积执意:
QQ截图20180223190944.png

QQ截图20180223191028.png

QQ截图20180223191250.png

即他们的笛卡尔积C" role="presentation" style="position: 对立;>C

C={(1,3),(1,4),(2,3),(2,4)}" role="presentation" style="position: 对立;>C={(1,3),(1,4),(2,3),(2,4)}

简略地说,它起步的。" role="presentation" style="position: 对立;>集射中靶子" role="presentation" style="position: 对立;>元素和" role="presentation" style="position: 对立;>集中射中靶子" role="presentation" style="position: 对立;>元素结成成一点钟成为同等。(1,3)" role="presentation" style="position: 对立;>(1,3),过后采用" role="presentation" style="position: 对立;>集射中靶子" role="presentation" style="position: 对立;>元素和" role="presentation" style="position: 对立;>集中射中靶子" role="presentation" style="position: 对立;>元素,以次类推" role="presentation" style="position: 对立;>,很简略吗?自然,你可以详细说明请教百度百科全书。

0。成绩出身

率先,我给你们两套。,让你把它们兼并成一点钟。,你会以为多少做?

像,有

A={1,2},B={a,b,c}" role="presentation" style="position: 对立;>A={1,2},B={a,b,c}

>

让你把这两个集中放在一点钟集中中。,不管用什么办法,我大都会辨析。,率先,集中具有两三个属性。,

第一点钟是元素的标号。,用算学术语喊叫它。|A|=2" role="presentation" style="position: 对立;>|A|=2,这是一点钟模块。,表现元素的数量。

其次,我将辨析每一点钟元素是什么。,在这一点上有一点钟元素。,数字或拉丁字母。

:" role="presentation" style="position: 对立;>:

这么我们的多少将它们兼并呢?

1。从骰子开端。

​ 把这些元素正好放在篮子里。,像。

C={1,2,a,b,c}" role="presentation" style="position: 对立;>C={1,2,a,b,c}

​ 对吧,简略易懂,这么C" role="presentation" style="position: 对立;>C模量为5。,A" role="presentation" style="position: 对立;>A的加B" role="presentation" style="position: 对立;>B它们也有数字或字母元素。,我们的可以称它们为整体的组。

2。从元素开端

​ 让我们的先把标题放下。,经过元素结成将随后集中结成起来。

A={1,2},B={a,b,c}" role="presentation" style="position: 对立;>A={1,2},B={a,b,c}

​ 我们的多少开端思惟我们的记住的笛卡尔成为同等系?,成为同等由两个数字(元素)组织。,过后我们的可以混合1和A。

(1,a)" role="presentation" style="position: 对立;>(1,a)

它现时出庭像一点钟成为同等吗?1b" role="presentation" style="position: 对立;>1b结成,那执意

(1,b)" role="presentation" style="position: 对立;>(1,b)

或许你对结成算学有影象。,混合上级的方法。元素一公共的2×3=6" role="presentation" style="position: 对立;>2×3=6个,细心的同窗可能性先前发明了两个加厚的元素。,因它故障普通数字或字母单整体的素。,他们是

C={" role="presentation" style="position: 对立;>C={

(1,a),(1,b),(1,c)" role="presentation" style="position: 对立;>(1,a),(1,b),(1,c)

(2,a),(2,b),(2,c)" role="presentation" style="position: 对立;>(2,a),(2,b),(2,c)

}" role="presentation" style="position: 对立;>}

​ 小心上面的排序。这六岁成为同等。(,)" role="presentation" style="position: 对立;>(,)称为序偶,小心它们是订购的。,也执意(a,b)=(b,a)" role="presentation" style="position: 对立;>(a,b)=(b,a)除非a=b" role="presentation" style="position: 对立;>a=b 到这一步,人人都可以读数。,自然,我的目的分类被带回了算学老师。,嘿嘿。因这是离散算学射中靶子知。

三。中肯。

​ (应用笛卡尔积强怼一波)
好了,这么,这与标明库射中靶子衔接查询有什么相干呢?,免得是笨蛋的笛卡尔积,上面记起:

表1

表2

上面表的满意的倘若熟识?对吗?,我们的可以将它们与前一组停止匹敌。A" role="presentation" style="position: 对立;>A并设置B" role="presentation" style="position: 对立;>B,因而珍藏的塑造是

A={1,2,3,4},B={a,b,c,d}" role="presentation" style="position: 对立;>A={1,2,3,4},B={a,b,c,d}

他们的笛卡尔积是什么呢?

免得它是以集射中靶子塑造列出的,它必然要具有4×4=16" role="presentation" style="position: 对立;>4×4=16,短距离长,我不会的写作。,光辉,你会遵照上面的办法。,

因而在这一点上有个成绩。,两个表的笛卡尔积怎样兼并呢?难道像算学同样地(1,a),(1,b),(1,c),(1,d)" role="presentation" style="position: 对立;>(1,a),(1,b),(1,c),(1,d)如此的地?列举如下所述。

表3:

numletter
1a
1b
1c
1d
" role="presentation" style="position: 对立;>" role="presentation" style="position: 对立;>

会不会的短距离傻?,还缺乏走完。,因而如此的做是缺乏意思的。,因向左的标明可能性不变的1。!过后是2222,3333,4444." role="presentation" style="position: 对立;>2222,3333,4444.免得你想写完,上面也有。164=12" role="presentation" style="position: 对立;>164=12条记载!

4。设法对付能力更强的

既然上面把两个表用正好用笛卡尔积衔接不成,这是其他的关心方法。率先将一点钟场地添加到表1和表2中。,即:

新表1

新表2

你找到什么了吗?,新表1和表三短距离批准。,对了,光辉的人必然要了解下一步我以为做什么。,率先,以表格的塑造写信新表1和新表2。
Anew={Bnew={" role="presentation" style="position: 对立;>Anew={Bnew={
(1,5), " role="presentation" style="position: 对立;>(1,5), ->(a,1)," role="presentation" style="position: 对立;>(a,1),
(2,10)," role="presentation" style="position: 对立;>(2,10),->(b,2)," role="presentation" style="position: 对立;>(b,2),
(3,15)," role="presentation" style="position: 对立;>(3,15),->(c,3)," role="presentation" style="position: 对立;>(c,3),
(4,20)}" role="presentation" style="position: 对立;>(4,20)}->(d,4)}" role="presentation" style="position: 对立;>(d,4)}

见在这一点上,你合乎情理的吗?也执意说,两对对?(a,b)" role="presentation" style="position: 对立;>(a,b)这张表格结成成一张。(a,b,c,d)" role="presentation" style="position: 对立;>(a,b,c,d)如此的的塑造.这么就构成了joined的表(由两个表结合的一张暂时表).细心的同窗有木发明,numlevel" role="presentation" style="position: 对立;>numlevel看重是完整同样地的吗?,执意我成心的,你能对我做什么?哈哈。,真正,我简直想说。,免得正好经过笛卡尔积衔接不成,这么这两个正好兼并成一点钟表倘若订购?,这时,有两个表与逻辑相当互相牵连。,这么,我们的就可以把两个表依据事前法律好的法律停止兼并了,像,机关的标号麝香婚配。,先生编号对应于查找成绩表等。这是

5。不要应用人的皮肤的龙。

​ 好了,短距离懒。,真正富于表情的在SQL衔接中查询记住的。,这先前故障优先了。嗣后死气沉沉的很多要写的。,但后来故障如此的。,累,花工夫,看一眼你的反响。,你欣赏如此计划吗?让我们的跳跃舞。

【责任编辑:admin】
热图 更多>>
热门文章 更多>>