【问题标题】:How-To Create an INNER JOIN and LEFT JOIN in Oracle 8i如何在 Oracle 8i 中创建 INNER JOIN 和 LEFT JOIN
【发布时间】:2018-12-14 17:16:18
【问题描述】:

我正在尝试创建一个 Oracle 8i QUERY,它结合了具有多个条件的内部联接以及具有多个条件的左联接。但是,我不断收到 SQL 命令未正确结束。我的经验主要是 T-SQl,所以如果这很明显,请提前道歉..

SELECT TRANS.CUSTOMER_NUMBER AS "AR CUST", CUST.CUSTOMER_NUMBER AS 
"CUSTNUM", CUSTA.FVE_NUMBER AS "FVE"
FROM FINANCE.AR_TRANSACTIONS  TRANS
JOIN FINANCE.CUSTOMERS CUST
ON (TRANS.CUSTOMER_NUM = CUST.CUSTOMER_NUM
AND TRANS.COMPANY_NUM = CUST.COMPANY_NUM)
LEFT JOIN FINANCE.CUSTOMER_ADDRESSES CUSTA
ON (TRANS.FVE_NUMBER = CUSTA.FVE_NUMBER
AND TRANS.COMANY_NUM = CUSTA.CUSTOMER_NUM )
WHERE ROWNUM < 5; 

【问题讨论】:

标签: oracle oracle8i


【解决方案1】:

8i 不支持 ANSI '92 连接语法 left, right, inner, full outer, cross join syntax 你必须使用 (+) 符号...

类似...

SELECT TRANS.CUSTOMER_NUMBER AS "AR CUST"
     , CUST.CUSTOMER_NUMBER AS "CUSTNUM"
     , CUSTA.FVE_NUMBER AS "FVE"
FROM FINANCE.AR_TRANSACTIONS  TRANS
   , FINANCE.CUSTOMERS CUST
   , FINANCE.CUSTOMER_ADDRESSES CUSTA
WHERE TRANS.CUSTOMER_NUM = CUST.CUSTOMER_NUM
  AND TRANS.COMPANY_NUM = CUST.COMPANY_NUM
  AND TRANS.FVE_NUMBER = CUSTA.FVE_NUMBER(+)
  AND TRANS.COMANY_NUM = CUSTA.CUSTOMER_NUM(+)
  AND ROWNUM < 5 

【讨论】:

    猜你喜欢
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2012-08-17
    • 2014-03-11
    • 1970-01-01
    • 2018-07-10
    • 2015-01-10
    相关资源
    最近更新 更多