左外連線查詢語句(left outer join)

2021-06-22 11:57:31 字數 712 閱讀 3679

我有乙個許可權表xt_qxmx:(許可權序號,許可權名稱)

qxxh   qxmc

1 發文填寫

2 發文審批

3 收文填寫

4 收文審批

許可權-人員對應表xt_qxry,如果某人有某個許可權,則在此表有條記錄

(序號,許可權序號,使用者名稱)

xh qxxh yhmc

1 2 張三

2 3 張三

(張三有兩個許可權,發文審批和收文填寫)

我想產生乙個這樣的查詢:列出張三有哪些許可權,同時列出所有的許可權.查詢結果如下:

qxxh qxmc  是否有此許可權

1 發文填寫  false

2 發文審批  true

3 收文填寫  true

4 收文審批  false

初步實現

select q.qxxh,q.qxmc,q.yhmc from 

(select t.qxxh,t.qxmc,r.yhmc from xt_qxmx as t left outer join (select * from xt_qxry where yhmc='張三') as r on t.qxxh=r.qxxh) as q

不過顯示出來是這樣的:

qxxh qxmc  是否有此許可權

1 發文填寫  null

2 發文審批  張三

3 收文填寫  張三

4 收文審批  null

左連線 左外連線 右外連線

在之前,我對mssql中的內連線和外連線所得出的資料集不是很清楚。這幾天重新溫習了一下sql的書本,現在的思路應該是很清楚了,現在把自己的理解發出來給大家溫習下。希望和我一樣對sql的連線語句不太理解的朋友能夠有所幫助。發這麼菜的教程,各位大大們別笑話偶了,呵 d 有兩個表a和表b。表a結構如下 a...

連表查詢(內連線,左外連線,右外連線)

用兩個表 a table b table 關聯欄位a table.a id和b table.b id來演示一下mysql的內連線 外連線 左 外 連線 右 外 連線 全 外 連線 mysql版本 server version 5.6.31 mysql community server gpl 資料庫...

自然連線,外連線,左外連線,右外連線

1.自然連線 結果基於表r和s的笛卡爾乘積,取對應的r和s中相同屬性組都相同的值,同時相同屬性組只保留乙個 先來看圖示,2個表以及自然連線的結果 操作的步驟 1.1找出2個表中相同的屬性組 屬性a加上屬性b 1.2找相同屬性組中,相同的屬性值所對應的元組 相同的屬性值 1.2.相同屬性值對應的元組 ...