資料庫菜鳥學習之旅 SQL無限分級分類表

2021-07-24 16:49:02 字數 2655 閱讀 5476

有一張電器表,表中記錄如下所示:

type_id

type_name

parent_id

1家用電器02

電腦、辦公03

大家電1

4生活電器15

平板電視36

空調37電風扇48

飲水機4

9電腦整機210

電腦配件211

筆記本9

12超級本913

遊戲本9

14cpu

1015

主機10

————————————完美分割線——————————————

11月17號更新…..

查詢語句:

select p.type_id,p.type_name,count(s.type_name) as  children_count from tdb_goods_types as s left

join tdb_goods_types as p on s.parent_id = p.type_id group

by s.parent_id;

查詢結果:

+———+————+—————-+

| type_id | type_name | children_count |

+———+————+—————-+

| null | null | 2 |

| 1 | 家用電器 | 2 |

| 2 | 電腦、辦公 | 2 |

| 3 | 大家電 | 2 |

| 4 | 生活電器 | 2 |

| 9 | 電腦整機 | 3 |

| 10 | 電腦配件 | 2 |

+———+————+—————-+

查詢語句: left join 版本

select p.type_id,p.type_name,s.type_name from tdb_goods_types as p left

join tdb_goods_types as s on p.type_id = s.parent_id;

查詢結果:

+———+————+———–+

| type_id | type_name | type_name |

+———+————+———–+

| 1 | 家用電器 | 大家電 |

| 1 | 家用電器 | 生活電器 |

| 3 | 大家電 | 平板電視 |

| 3 | 大家電 | 空調 |

| 4 | 生活電器 | 電風扇 |

| 4 | 生活電器 | 飲水機 |

| 2 | 電腦、辦公 | 電腦整機 |

| 2 | 電腦、辦公 | 電腦配件 |

| 9 | 電腦整機 | 筆記本 |

| 9 | 電腦整機 | 超級本 |

| 9 | 電腦整機 | 遊戲本 |

| 10 | 電腦配件 | cpu |

| 10 | 電腦配件 | 主機 |

| 5 | 平板電視 | null |

| 6 | 空調 | null |

| 7 | 電風扇 | null |

| 8 | 飲水機 | null |

| 11 | 筆記本 | null |

| 12 | 超級本 | null |

| 13 | 遊戲本 | null |

| 14 | cpu | null |

| 15 | 主機 | null |

+———+————+———–+

查詢語句: inner join 版本

select p.type_id,p.type_name,s.type_name from tdb_goods_types as p inner

join tdb_goods_types as s on p.type_id = s.parent_id;

查詢結果:

+———+————+———–+

| type_id | type_name | type_name |

+———+————+———–+

| 1 | 家用電器 | 大家電 |

| 1 | 家用電器 | 生活電器 |

| 3 | 大家電 | 平板電視 |

| 3 | 大家電 | 空調 |

| 4 | 生活電器 | 電風扇 |

| 4 | 生活電器 | 飲水機 |

| 2 | 電腦、辦公 | 電腦整機 |

| 2 | 電腦、辦公 | 電腦配件 |

| 9 | 電腦整機 | 筆記本 |

| 9 | 電腦整機 | 超級本 |

| 9 | 電腦整機 | 遊戲本 |

| 10 | 電腦配件 | cpu |

| 10 | 電腦配件 | 主機 |

+———+————+———–+

在這裡,也能看出,inner join 和 left join 的區別:

left join會把左邊的表完全顯示出來,而inner join 只會把on語句中有交集的部分顯示出來。

reference:

資料庫學習之旅 Redis

增加 zadd key score member 在有序集合中新增乙個成員 zadd key score member 檢視指定區間元素 公升序 zrange key start stop withscores 檢視指定區間元素 降序 zrevrange key start stop withsco...

Laravel 學習之旅(二) 資料庫

查詢語句構造器也包含一些可用以協助你在select語法上作 悲觀鎖定 的函式。若要以 共享鎖 來執行語句,則可在查詢上使用sharedlock方法。共享鎖可避免選擇的資料列被更改,直到事務被提交為止 db table users where votes 100 sharedlock get 此外,你...

EF Code First 學習之旅 資料庫初始化

context類的基類建構函式有如下的引數 1.無引數 如果沒有給基類建構函式新增引數,它會在local sqlexpress server建立資料庫,名為.namespace schooldatalayer 上面建立的資料庫名稱為 schooldatalayer.context 2.引數為 資料庫...