有一張電器表,表中記錄如下所示:
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.引數為 資料庫...