1

所以我想做这样的事情:

SELECT ACC_NO
FROM
TABLENAME A
LEFT JOIN
(
    TABLENAME B
    LEFT JOIN TABLENAME C
    ON B.FIELDNAME = C.FIELDNAME
) D
ON A.FIELDNAME = D.FIELDNAME

我将如何实现这一目标?

4

2 回答 2

0

是的,您可以

SELECT ACC_NO
FROM TABLENAME A LEFT JOIN
     (TABLENAME B LEFT JOIN
      TABLENAME C
      ON B.FIELDNAME = C.FIELDNAME
     ) -- No alias is necessary
     ON A.FIELDNAME = B.FIELDNAME;

但是,这是不必要且冗长的。反而:

SELECT ACC_NO
FROM TABLENAME A LEFT JOIN
     TABLENAME B
     A.FIELDNAME = B.FIELDNAME LEFT JOIN
     TABLENAME C
     ON B.FIELDNAME = C.FIELDNAME;

我假设您的查询实际上更复杂。这个版本大概相当于:

SELECT A.ACC_NO
FROM TABLENAME A

除非您有兴趣实际查看 s 可能生成的重复项JOIN

于 2018-10-04T10:44:24.050 回答
0

是的,有可能,尝试如下

SELECT A.ACC_NO,A.FIELDNAME
FROM
TABLENAME A
LEFT JOIN
(
    select B.* from TABLENAME B
    LEFT JOIN TABLENAME C
    ON B.FIELDNAME = C.FIELDNAME
) D
ON A.FIELDNAME = D.FIELDNAME
于 2018-10-04T09:49:58.267 回答