mysql 笛卡爾乘積 左右連線 全連線

2021-09-25 21:29:35 字數 1087 閱讀 8562

部分**於

用於測試的有兩張表表,student(id,name,psd),grade(stu_id,score)

1.  ----笛卡爾乘積,共有6*4條資料

2.---內連線

select * from student a,grade bwhere a.`id`=b.`stu_id`

等價於select * from student a inner join grade b on a.`id`=b.`stu_id` 

3. ---左連線

select * from student a left join grade b on a.`id`=b.`stu_id` 

將a表查詢的結果去b中做匹配,匹配不到的就顯示為null,所以返回的總數為表a中行數

4.----右連線

select * from student a right join grade b on a.`id`=b.`stu_id`,

將b表結果拿去和a做匹配,匹配不到為null,返回總行數為b錶行數。

5. ---全連線,相當於左連線+右連線

select * from student a full join grade b on a.`id`=b.`stu_id`  

笛卡爾乘積

笛卡爾 descartes 乘積又叫直積。假設集合a 集合b 則兩個集合的笛卡爾積為。可以擴充套件到多個集合的情況。類似的例子有,如果a表示某學校學生的集合,b表示該學校所有課程的集合,則a與b的笛卡爾積表示所有可能的選課情況。目錄名稱定義 序偶定義 笛卡爾積定義 推導過程 案例 序偶與笛卡爾積 定...

sql關聯,笛卡爾乘積問題。

mysql語句拼寫時存在笛卡爾乘積的問題,如果想要以a表為主,去其關聯表的部分字段,即 a中有n條,關聯b之後也是n條,則條件應作為b的關聯條件,而不是where之後的條件。例 select from t ord item a left join t register item b on b.ite...

python中的笛卡爾乘積

在領扣刷題的過程中遇到需要使用笛卡爾積的解法,因為使用的是python3版本解決,所以在python版本中提供了乙個庫函式可以模擬笛卡爾乘積的元素組成過程 itertools.product,一般來說比較常使用的是在product方法中傳遞進a與b兩個可迭代的物件進行組合,官方提供的解釋如下 pro...