您的位置:首页 > 其它

终于找到一个有助理解left/right/full outer join的例子

2010-10-06 18:19 489 查看
近日在学习《UnderstadingDB2》的时候找到了一个例子,对于理解left/right/full三种outerjoin的大有裨益。

先看样本数据,来自DB2的示例数据库sample:

01
db2=>
insert
into
employee
values
(
'99999'
,
'killkill'
,
'N'
,
'Huang'
,
null
,
null
,
null
,
'nothing'
,16,
'M'
,
null
,
null
,
null
,
null
);
02
DB20000ITheSQLcommandcompleted
successfully.
03
04
db2=>
SELECT
empno,firstnme,
lastname,workdept|db2=>
SELECT

deptno,deptname
from
department
order
by
1;
05
db2(cont.)=>
FROM
employee
order
by
4;
|
06
|
07
EMPNOFIRSTNMELASTNAME
WORKDEPT|DEPTNODEPTNAME
08
---------------------------------
--------|------------------------------------------
09
000010CHRISTINEHAAS
A00|A00SPIFFYCOMPUTERSERVICEDIV.
10
000110VINCENZOLUCCHESSI
A00|B01PLANNING
11
000120SEANO'CONNELL
A00|C01INFORMATIONCENTER
12
200010DIANHEMMINGER
A00|D01DEVELOPMENTCENTER
13
200120GREGORLANDO
A00|D11MANUFACTURINGSYSTEMS
14
000020MICHAELTHOMPSON
B01|D21ADMINISTRATIONSYSTEMS
15
000030SALLYKWAN
C01|E01SUPPORTSERVICES
16
000130DELORESQUINTANA
C01|E11OPERATIONS
17
000140HEATHERNICHOLLS
C01|E21SOFTWARESUPPORT
18
200140KIMNATZ
C01|F22BRANCHOFFICEF2
19
000060IRVINGSTERN
D11|G22BRANCHOFFICEG2
20
000150BRUCEADAMSON
D11|H22BRANCHOFFICEH2
21
000160ELIZABETHPIANKA
D11|I22BRANCHOFFICEI2
22
000170MASATOSHIYOSHIMURA
D11|J22BRANCHOFFICEJ2
23
000180MARILYNSCOUTTEN
D11|
24
000190JAMESWALKER
D11|14record(s)selected.
25
000200DAVIDBROWN
D11|
26
000210WILLIAMJONES
D11|
27
000220JENNIFERLUTZ
D11|
28
200170KIYOSHIYAMAMOTO
D11|
29
200220REBAJOHN
D11|
30
000070EVAPULASKI
D21|
31
000230JAMESJEFFERSON
D21|
32
000240SALVATOREMARINO
D21|
33
000250DANIELSMITH
D21|
34
000260SYBILJOHNSON
D21|
35
000270MARIAPEREZ
D21|
36
200240ROBERTMONTEVERDE
D21|
37
000050JOHNGEYER
E01|
38
000090EILEENHENDERSON
E11|
39
000280ETHELSCHNEIDER
E11|
40
000290JOHNPARKER
E11|
41
000300PHILIPSMITH
E11|
42
000310MAUDESETRIGHT
E11|
43
200280EILEENSCHWARTZ
E11|
44
200310MICHELLESPRINGER
E11|
45
000100THEODORESPENSER
E21|
46
000320RAMLALMEHTA
E21|
47
000330WINGLEE
E21|
48
000340JASONGOUNOT
E21|
49
200330HELENAWONG
E21|
50
200340ROYALONZO
E21|
51
99999killkillHuang
-|
注意,我故意插了一条没有对应部门的测试数据到employee表中,现在看看left/right/fulloutjoin
的结果:

LEFTOUTJOIN





01
db2=>
SELECT
empno,firstnme,
lastname,deptname
02
db2(cont.)=>
FROM
employee
LEFT
OUTER
JOIN
department
03
db2(cont.)=>
ON
workdept=deptno
04
db2(cont.)=>;
05
06
EMPNOFIRSTNMELASTNAME
DEPTNAME
07
---------------------------------
------------------------------------
08
000010CHRISTINEHAAS
SPIFFYCOMPUTERSERVICEDIV.
09
000020MICHAELTHOMPSON
PLANNING
10
000030SALLYKWAN
INFORMATIONCENTER
11
000050JOHNGEYER
SUPPORTSERVICES
12
000060IRVINGSTERN
MANUFACTURINGSYSTEMS
13
000070EVAPULASKI
ADMINISTRATIONSYSTEMS
14
000090EILEENHENDERSON
OPERATIONS
15
000100THEODORESPENSER
SOFTWARESUPPORT
16
000110VINCENZOLUCCHESSI
SPIFFYCOMPUTERSERVICEDIV.
17
000120SEANO'CONNELL
SPIFFYCOMPUTERSERVICEDIV.
18
000130DELORESQUINTANA
INFORMATIONCENTER
19
000140HEATHERNICHOLLS
INFORMATIONCENTER
20
000150BRUCEADAMSON
MANUFACTURINGSYSTEMS
21
000160ELIZABETHPIANKA
MANUFACTURINGSYSTEMS
22
000170MASATOSHIYOSHIMURA
MANUFACTURINGSYSTEMS
23
000180MARILYNSCOUTTEN
MANUFACTURINGSYSTEMS
24
000190JAMESWALKER
MANUFACTURINGSYSTEMS
25
000200DAVIDBROWN
MANUFACTURINGSYSTEMS
26
000210WILLIAMJONES
MANUFACTURINGSYSTEMS
27
000220JENNIFERLUTZ
MANUFACTURINGSYSTEMS
28
000230JAMESJEFFERSON
ADMINISTRATIONSYSTEMS
29
000240SALVATOREMARINO
ADMINISTRATIONSYSTEMS
30
000250DANIELSMITH
ADMINISTRATIONSYSTEMS
31
000260SYBILJOHNSON
ADMINISTRATIONSYSTEMS
32
000270MARIAPEREZ
ADMINISTRATIONSYSTEMS
33
000280ETHELSCHNEIDER
OPERATIONS
34
000290JOHNPARKER
OPERATIONS
35
000300PHILIPSMITH
OPERATIONS
36
000310MAUDESETRIGHT
OPERATIONS
37
000320RAMLALMEHTA
SOFTWARESUPPORT
38
000330WINGLEE
SOFTWARESUPPORT
39
000340JASONGOUNOT
SOFTWARESUPPORT
40
200010DIANHEMMINGER
SPIFFYCOMPUTERSERVICEDIV.
41
200120GREGORLANDO
SPIFFYCOMPUTERSERVICEDIV.
42
200140KIMNATZ
INFORMATIONCENTER
43
200170KIYOSHIYAMAMOTO
MANUFACTURINGSYSTEMS
44
200220REBAJOHN
MANUFACTURINGSYSTEMS
45
200240ROBERTMONTEVERDE
ADMINISTRATIONSYSTEMS
46
200280EILEENSCHWARTZ
OPERATIONS
47
200310MICHELLESPRINGER
OPERATIONS
48
200330HELENAWONG
SOFTWARESUPPORT
49
200340ROYALONZO
SOFTWARESUPPORT
50
99999killkillHuang
-
RIGHTOUTERJOIN





01
db2=>
SELECT
empno,firstnme,
lastname,deptname
02
db2(cont.)=>
FROM
employee
RIGHT
OUTER
JOIN
department
03
db2(cont.)=>
ON
workdept=deptno
04
db2(cont.)=>;
05
06
EMPNOFIRSTNMELASTNAME
DEPTNAME
07
---------------------------------
------------------------------------
08
000010CHRISTINEHAAS
SPIFFYCOMPUTERSERVICEDIV.
09
000020MICHAELTHOMPSON
PLANNING
10
000030SALLYKWAN
INFORMATIONCENTER
11
000050JOHNGEYER
SUPPORTSERVICES
12
000060IRVINGSTERN
MANUFACTURINGSYSTEMS
13
000070EVAPULASKI
ADMINISTRATIONSYSTEMS
14
000090EILEENHENDERSON
OPERATIONS
15
000100THEODORESPENSER
SOFTWARESUPPORT
16
000110VINCENZOLUCCHESSI
SPIFFYCOMPUTERSERVICEDIV.
17
000120SEANO'CONNELL
SPIFFYCOMPUTERSERVICEDIV.
18
000130DELORESQUINTANA
INFORMATIONCENTER
19
000140HEATHERNICHOLLS
INFORMATIONCENTER
20
000150BRUCEADAMSON
MANUFACTURINGSYSTEMS
21
000160ELIZABETHPIANKA
MANUFACTURINGSYSTEMS
22
000170MASATOSHIYOSHIMURA
MANUFACTURINGSYSTEMS
23
000180MARILYNSCOUTTEN
MANUFACTURINGSYSTEMS
24
000190JAMESWALKER
MANUFACTURINGSYSTEMS
25
000200DAVIDBROWN
MANUFACTURINGSYSTEMS
26
000210WILLIAMJONES
MANUFACTURINGSYSTEMS
27
000220JENNIFERLUTZ
MANUFACTURINGSYSTEMS
28
000230JAMESJEFFERSON
ADMINISTRATIONSYSTEMS
29
000240SALVATOREMARINO
ADMINISTRATIONSYSTEMS
30
000250DANIELSMITH
ADMINISTRATIONSYSTEMS
31
000260SYBILJOHNSON
ADMINISTRATIONSYSTEMS
32
000270MARIAPEREZ
ADMINISTRATIONSYSTEMS
33
000280ETHELSCHNEIDER
OPERATIONS
34
000290JOHNPARKER
OPERATIONS
35
000300PHILIPSMITH
OPERATIONS
36
000310MAUDESETRIGHT
OPERATIONS
37
000320RAMLALMEHTA
SOFTWARESUPPORT
38
000330WINGLEE
SOFTWARESUPPORT
39
000340JASONGOUNOT
SOFTWARESUPPORT
40
200010DIANHEMMINGER
SPIFFYCOMPUTERSERVICEDIV.
41
200120GREGORLANDO
SPIFFYCOMPUTERSERVICEDIV.
42
200140KIMNATZ
INFORMATIONCENTER
43
200170KIYOSHIYAMAMOTO
MANUFACTURINGSYSTEMS
44
200220REBAJOHN
MANUFACTURINGSYSTEMS
45
200240ROBERTMONTEVERDE
ADMINISTRATIONSYSTEMS
46
200280EILEENSCHWARTZ
OPERATIONS
47
200310MICHELLESPRINGER
OPERATIONS
48
200330HELENAWONG
SOFTWARESUPPORT
49
200340ROYALONZO
SOFTWARESUPPORT
50
---
BRANCHOFFICEH2
51
---
BRANCHOFFICEI2
52
---
BRANCHOFFICEG2
53
---
DEVELOPMENTCENTER
54
---
BRANCHOFFICEF2
55
---
BRANCHOFFICEJ2
FULLOUTERJOIN





01
db2=>
SELECT
empno,firstnme,
lastname,deptname
02
db2(cont.)=>
FROM
employee
FULL
OUTER
JOIN
department
03
db2(cont.)=>
ON
workdept=deptno
04
db2(cont.)=>;
05
06
EMPNOFIRSTNMELASTNAME
DEPTNAME
07
---------------------------------
------------------------------------
08
000010CHRISTINEHAAS
SPIFFYCOMPUTERSERVICEDIV.
09
000020MICHAELTHOMPSON
PLANNING
10
000030SALLYKWAN
INFORMATIONCENTER
11
000050JOHNGEYER
SUPPORTSERVICES
12
000060IRVINGSTERN
MANUFACTURINGSYSTEMS
13
000070EVAPULASKI
ADMINISTRATIONSYSTEMS
14
000090EILEENHENDERSON
OPERATIONS
15
000100THEODORESPENSER
SOFTWARESUPPORT
16
000110VINCENZOLUCCHESSI
SPIFFYCOMPUTERSERVICEDIV.
17
000120SEANO'CONNELL
SPIFFYCOMPUTERSERVICEDIV.
18
000130DELORESQUINTANA
INFORMATIONCENTER
19
000140HEATHERNICHOLLS
INFORMATIONCENTER
20
000150BRUCEADAMSON
MANUFACTURINGSYSTEMS
21
000160ELIZABETHPIANKA
MANUFACTURINGSYSTEMS
22
000170MASATOSHIYOSHIMURA
MANUFACTURINGSYSTEMS
23
000180MARILYNSCOUTTEN
MANUFACTURINGSYSTEMS
24
000190JAMESWALKER
MANUFACTURINGSYSTEMS
25
000200DAVIDBROWN
MANUFACTURINGSYSTEMS
26
000210WILLIAMJONES
MANUFACTURINGSYSTEMS
27
000220JENNIFERLUTZ
MANUFACTURINGSYSTEMS
28
000230JAMESJEFFERSON
ADMINISTRATIONSYSTEMS
29
000240SALVATOREMARINO
ADMINISTRATIONSYSTEMS
30
000250DANIELSMITH
ADMINISTRATIONSYSTEMS
31
000260SYBILJOHNSON
ADMINISTRATIONSYSTEMS
32
000270MARIAPEREZ
ADMINISTRATIONSYSTEMS
33
000280ETHELSCHNEIDER
OPERATIONS
34
000290JOHNPARKER
OPERATIONS
35
000300PHILIPSMITH
OPERATIONS
36
000310MAUDESETRIGHT
OPERATIONS
37
000320RAMLALMEHTA
SOFTWARESUPPORT
38
000330WINGLEE
SOFTWARESUPPORT
39
000340JASONGOUNOT
SOFTWARESUPPORT
40
200010DIANHEMMINGER
SPIFFYCOMPUTERSERVICEDIV.
41
200120GREGORLANDO
SPIFFYCOMPUTERSERVICEDIV.
42
200140KIMNATZ
INFORMATIONCENTER
43
200170KIYOSHIYAMAMOTO
MANUFACTURINGSYSTEMS
44
200220REBAJOHN
MANUFACTURINGSYSTEMS
45
200240ROBERTMONTEVERDE
ADMINISTRATIONSYSTEMS
46
200280EILEENSCHWARTZ
OPERATIONS
47
200310MICHELLESPRINGER
OPERATIONS
48
200330HELENAWONG
SOFTWARESUPPORT
49
200340ROYALONZO
SOFTWARESUPPORT
50
---
BRANCHOFFICEH2
51
---
BRANCHOFFICEI2
52
---
BRANCHOFFICEG2
53
---
DEVELOPMENTCENTER
54
---
BRANCHOFFICEF2
55
---
BRANCHOFFICEJ2
56
99999killkillHuang
-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐