回答

收藏

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

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

我想加入两个表CUSTMR和DEPRMNT。1 X% s1 O" ?# G7 r; X$ E3 j
我需要的是:LEFT OUTER JOIN内有两个或多个带有子查询的表的LEFT OUTER JOIN,如下所示:3 J, _  h) {/ y
表格:CUSTMR,DEPRMNT& z) o$ y' [# U6 _% U. b2 Q
查询为:; }: R( u0 C  X8 i) ^& s0 m
SELECT
% ]% }9 G) _- f1 }' t* n" v    cs.CUSID
" D+ y* u1 T" C) n3 G8 f( D    ,dp.DEPID
  C( [& Z: y  `2 SFROM0 W; h8 @8 Q8 \7 v( [
    CUSTMR cs
6 a/ f+ ~3 K, v0 W3 z        LEFT OUTER JOIN (
# K! m2 ^. `/ r7 D3 F) h            SELECT
+ w4 @5 m# V7 @* I% w' {                    dp.DEPID! N9 q5 K0 z* {, S) j7 r
                    ,dp.DEPNAME) G" s( Z. k3 M6 Y$ ?9 y- q. d
                FROM- P! U3 }* @8 n# _) {
                    DEPRMNT dp
) s( d2 ]. ?6 w# }                WHERE
+ }$ I! c$ S9 [5 i                    dp.DEPADDRESS = 'TOKYO'8 Q5 ^+ D# }/ l* x  G
        )8 `3 p; {  B% g
            ON (
8 X/ p) x( p9 O- t# f- n                dp.DEPID = cs.CUSID2 V& j0 ]# ]' b
                AND cs.CUSTNAME = dp.DEPNAME
9 l* N% x' O/ e" d$ D            )
: L& q% I, x1 c7 _) q. sWHERE: {9 c- {/ a" K# }$ I) R7 ?
    cs.CUSID != ''# I& l% `) ?4 ]% m$ F: m( r& a
这里的子查询是:
9 C4 S  p% |) N. g& ASELECT
- q$ N7 d& ?/ W9 P& A, W6 s7 }" ?, `    dp.DEPID, dp.DEPNAME
7 u2 m8 S$ b, x5 K- ~FROM; Z6 J# o8 a0 z. w& Q  Z
    DEPRMNT dp' C2 I$ k1 U& I
WHERE) h* r; U. z0 X* Q! A) S
    dp.DEPADDRESS = 'TOKYO'0 u' i8 c4 R# I: q6 M: i
是否可以在LEFT OUTER JOIN内编写这样的子查询?7 J! v3 \. X; ]4 p, T
在我的DB2数据库上运行此查询时出现错误。7 |5 b: W: s1 ^: Z/ {- M" o
                / {1 Y5 b7 t# e6 _. i
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则