我有一个简单的问题:
SELECT THDR.filename,
THDR.txn_header_id,
THDR.txn_header_ext_id,
THDR.txn_header_dttm,
THDR.upload_dttm,
Nvl(Sum(TDTL.txn_vol), 0) TOTAL_VOLUME,
FROM ci_txn_header THDR,
ci_txn_detail TDTL,
WHERE THDR.txn_header_id = TDTL.txn_header_id
现在我面临的问题是,如果在CIIXTXNI报头中存在一个记录,在TDTL中没有相应的记录,则该查询不会返回该记录。
有没有一种方法可以让我把它包括在我的结果中?我不想使用union,因为我认为在查询中使用显式连接可能会有更好的结果。
请帮助我确定解决此问题所需的连接。
AM使用Oracle数据库
最佳答案
使用左连接
SELECT THDR.filename,
THDR.txn_header_id,
THDR.txn_header_ext_id,
THDR.txn_header_dttm,
THDR.upload_dttm,
Nvl(Sum(TDTL.txn_vol), 0) TOTAL_VOLUME,
FROM ci_txn_header THDR
LEFT JOIN ci_txn_detail TDTL
ON THDR.txn_header_id = TDTL.txn_header_id