SQL中的左右連線的使用情況

2021-09-14 04:55:01 字數 2080 閱讀 4279

1、什麼使用使用

例如:現在需要統計超市每個商品每月賣了多少

商品表(商品編號,商品名稱)

銷售表(商品編號,銷售數量,月份)

select a.商品名稱, sum(b.銷售數量), b.月份 

from 商品表 a, 銷售表 b

where a.商品編號 = b.商品編號

group by b.月份, b.商品編號

上面沒有統計到未賣出去的商品。

這種情況就需要使用到左連線或右連線。

select a.商品名稱, isnull(sum(b.銷售數量), 0), b.月份 

from 商品表 a left join 銷售表 b

on a.商品編號 = b.商品編號

group by b.月份, b.商品編號

注:未賣出去的商品為null

2、連線的分類

內連線:典型的連線運算

外連線:在from子句中外連線可以是左向外連線、右向外連線或完整外部連線

left join 或 left outer join

將返回左表的所有行。如果左表的某行在右表中沒有匹配行,則將為右表返回空值。

right join 或 right outer join

將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值。

交叉連線:交叉連線返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉連線也稱作笛卡爾積。

例子:a表                  b表

id    姓名         id    年齡    parent_id

1    張三          1    18        1

2    李四           2    22        2

3    王二           3    20        4

a.id和b.parent_id存在關係

1)內連線

select a.*, b.* from a inner join b on a.id = b.parent_id
結果:

id    姓名    id_1    年齡    parent_id

1    張三    1         18        1

2    李四    2          22        2

2)左連線

select a.*, b.* from a left join b on a.id = b.parent_id
結果: 

id    姓名    id_1    年齡    parent_id

1    張三    1         18        1

2    李四    2         22        2

3    王二    null     null       null        

3)右連線

select a.*,b.* from a right join b on a.id=b.parent_id
結果:

id    姓名    id_1    年齡    parent_id

1    張三    1         18        1

2    李四    2         22        2

null  null    3         20        4

4)完全連線

select a.*,b.* from a full join b on a.id=b.parent_id
結果:

id    姓名    id_1    年齡    parent_id

1    張三    1         18        1

2    李四    2         22        2

3    王二    null     null       null 

null  null    3         20        4

檢視埠的使用情況

開始 執行 cmd 進入命令提示符 輸入netstat ano 即可看到所有連線的pid 之後在任務管理器中找到這個pid所對應的程式如果任務管理器中沒有pid這一項,可以在任務管理器中選 檢視 選擇列 經常,我們在啟動應用的時候發現系統需要的埠被別的程式占用,如何知道誰占有了我們需要的埠,很多人都...

檢視埠的使用情況

1 使用natstat命令 檢視埠號 2 antp引數的含義 2.1 p是program netstat p 可以與其它開關一起使用,就可以新增 pid 程序名稱 2.2 a是all netstat a就是顯示所有的socket。2.3 n是numeric 直接使用ip位址,而不通過網域名稱伺服器。...

Oracle表空間檢視sql使用情況

dba在日常工作中,最重要的一點就是檢視表空間的使用情況,去了解是否有表空間滿了的情況出現。具體方法和步驟如下所示 第一步 開啟plsql 第二步 新建乙個sql視窗 第三步 輸入 select a.tablespace name tablespace n程式設計客棧ame nvl ceil 1 b...