我在一个Oracle数据库中有两个表(A和G),它们可以根据一个帐号连接在一起。一个需要注意的是,其中一个表(g)的记录比另一个表少80条。当我一起查询这两个表时,我需要获取所有的行,以便在缺少的80行的列中看到空数据。
我目前有一个Oracle语句,它使用以下“遗留”语法执行左外部联接查询:
SELECT A.AccountNo,
A.ParcelNo,
A.LocalNo,
A.PrimaryUseCode,
A.DefaultTaxDistrict,
RTRIM(G.Section),
RTRIM(G.Township),
RTRIM(g.Range)
FROM tblAcct A, tblAcctLegalLocation G
WHERE A.verstart <= '20100917999' AND A.verend > '20100917999' AND A.DefaultTaxDistrict = '2291'
AND (SUBSTR(A.AccountNo,1,1) = 'R' or SUBSTR(A.AccountNo,1,1)= 'I')
AND SUBSTR(a.ParcelNo,1,1)<> '7' and substr(a.ParcelNo,1,1)<>'8'
AND A.AcctStatusCode IN ('A', 'T', 'E')
AND A.AccountNo = G.AccountNo(+)
AND G.verstart(+) <= '20100917999' and G.verend(+) > '20100917999'
ORDER BY A.ParcelNo, A.LocalNo
我正试图将此查询转换为“标准”的左连接类型查询,因为有人告诉我Oracle的较新版本支持此语法。我试过基本的
LEFT OUTER JOIN ON A.AccountNo = G.AccountNo
但这似乎行不通。我的查询结果返回的行数比完整数量少80行。
有人能告诉我缺少什么或者如何正确格式化查询吗?