1. 程式人生 > >和我一起學程式設計系列(1):一文讓你讀懂資料庫聯合查詢(sql joins)的原理,笛卡爾積

和我一起學程式設計系列(1):一文讓你讀懂資料庫聯合查詢(sql joins)的原理,笛卡爾積

格式和我原來的不一致,將就看吧

和我一起學程式設計系列(1):-1.補充,笛卡爾積的概念

首先得有兩個集合,

A={1,2},B={3,4}

那麼他們的笛卡爾積就是:
QQ截圖20180223190944.png

QQ截圖20180223191028.png

QQ截圖20180223191250.png

即他們的笛卡爾積C

C={(1,3),(1,4),(2,3),(2,4)}

簡單來說就是取集合的元素和集合中的元素結合為一個座標(1,3),然後取集合的元素和集合中的元素,依次類推,是不是很簡單.當然詳細的可以參考

百度百科

0.問題引出

首先給你兩組個集合,讓你把他們合為一體,你會怎樣做?

比如有

A={1,2},B={a,b,c}

>

讓你把這兩個集合在一個集合,不管用什麼方法.我會分析,首先一個集合有幾個屬性,

第一是元素個數吧,用數學的術語就叫|A|=2,這個是模,表示元素個數.

第二我會分析每個元素是什麼東西,這裡就是一個單個元素,數字或者拉丁字母.

:

  • 模大小
  • 每個元素是什麼型別

那麼怎麼把他們兩合併呢?

1.從模入手

​ 直接把元素放在一個籃子裡,比如這樣

C={1,2,a,b,c}

​ 對吧,簡單易懂,那麼C的模為5,A的加B.同樣他們元素型別還有數字或者字母,我們可以把他們稱為一元組.

2.從元素入手

​ 先把題設拉下來,把下列集合通過元素組合的方式融合在一起

A={1,2},B={a,b,c}

​ 怎麼入手呢?想到中學時學過的直角座標系,座標就是兩個數字(元素)組成的,那麼我們可以把1和a組合成

(1,a)

現在看上去是不是有點像一個座標?接下來我們還可以把1b組合,那麼就是

(1,b)

也許你對組合數學還有印象的話,通過上面的方式組合而成的元素一共有2×3=6個,細心的同學也許發現了元素這兩個加粗了的,因為不是普通數字或字母單個的元素哦,他們是:

C={

(1,a),(1,b),(1,c)

(2,a),(2,b),(2,c)

}

​ 注意上面的