回答

收藏

如何在OUTER JOIN语句中编写子查询

技术问答 技术问答 75 人阅读 | 0 人回复 | 2023-09-13

我想加入两个表CUSTMR和DEPRMNT。
5 j0 K' f2 j* v  T5 `- j& H我需要的是:LEFT OUTER JOIN内有两个或多个带有子查询的表的LEFT OUTER JOIN,如下所示:
5 m' _7 M: d# j6 l表格:CUSTMR,DEPRMNT
7 ^$ m5 m% |6 j# e查询为:: O8 f2 ^0 ^) F
SELECT
7 a8 z' F/ u7 |) r; W    cs.CUSID% H7 V) \! w; f  }
    ,dp.DEPID& C3 \& ^+ w- `9 ^9 d6 h6 B) c
FROM
, m$ B# ?. J( m; F    CUSTMR cs& X- @; h" q  q4 N; H- j. l& f
        LEFT OUTER JOIN (
/ Y! @8 T2 P* E; e9 d8 b            SELECT
! K, O- B- |; Z, K+ g& e8 k                    dp.DEPID
: X- I. s+ O# v) J2 b                    ,dp.DEPNAME. C- F9 ^# K1 {" ?( R
                FROM
2 U. h4 C3 B" K  |- G                    DEPRMNT dp
" s$ L) ]$ ]6 P, r. J8 i0 B                WHERE
3 {" ?% E4 e5 Z( V( h                    dp.DEPADDRESS = 'TOKYO'3 s, x$ Y! k- P6 D
        )8 L/ p$ c. H4 j& p+ a( I+ j
            ON (
- q$ T. t/ a5 `5 l                dp.DEPID = cs.CUSID$ \, v( p- Y2 ^5 I% j
                AND cs.CUSTNAME = dp.DEPNAME, A' F5 A: m; U- L0 q
            )
) d) T: X  o6 }9 J. Z) [WHERE
+ z: b8 c$ i& s- K: ]    cs.CUSID != ''
# M. _( n/ `# d3 g" U" n+ y7 r这里的子查询是:
% D- _7 |& {# C0 GSELECT4 o( I" f. {, f! G
    dp.DEPID, dp.DEPNAME
9 Y: _1 C6 y0 Q, w1 r& @2 jFROM. D8 z; M0 i1 f+ J
    DEPRMNT dp
6 w, ~5 k/ T' H4 A) x! _! sWHERE
- p* V! x* k* B    dp.DEPADDRESS = 'TOKYO'
# \" ]0 ?% n8 X6 d- I是否可以在LEFT OUTER JOIN内编写这样的子查询?
& m4 i( e# r  _在我的DB2数据库上运行此查询时出现错误。
/ {$ d, s9 U- h0 q( ~0 j# ~               
) I* F& u3 X0 G( Y4 `解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则