简单的SQL查询得到"ORA-00918:列模糊定义"?

Cap*_*nty 0 sql oracle

我只是想从一个专栏中获得一笔钱.

SELECT SUM(amount_usd)
FROM WIRE_MSTR, TRANS_MSTR
INNER JOIN WIRE_MSTR ON WIRE_MSTR.trans_id = TRANS_MSTR.trans_id
WHERE WIRE_MSTR.dest_cntry = 'CANADA' AND TRANS_MSTR.trans_yyyymm = '201510';
Run Code Online (Sandbox Code Playgroud)

但是在第4行,我收到错误"ORA-00918:列模糊定义".我引用了所有内容,可能是什么问题?

Hon*_*ger 5

您正在使用隐式和显式连接语法.您应该删除隐式语法:

SELECT SUM(amount_usd)
FROM TRANS_MSTR
INNER JOIN WIRE_MSTR ON WIRE_MSTR.trans_id = TRANS_MSTR.trans_id
WHERE WIRE_MSTR.dest_cntry = 'CANADA' AND TRANS_MSTR.trans_yyyymm = '201510';
Run Code Online (Sandbox Code Playgroud)

问题是,你WIRE_MSTR在FROM子句中有两次.