天天看點

一個sql語句(left outer join)

我有一個權限表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