从2个表中获取数据而不进行交叉连接并行获取

时间:2013-07-19 04:26:49

标签: oracle oracle11g oracle10g

我需要有一个Oracle查询 我有2张桌子

第1张表 - 收据表

Receipt no  Amount Paid  Policy No  
1            100          101  
2            100          101  
3            100          101 

2表 - 检查表

Policy no Check No Check Amt  
101       1         150  
101       2         150 

我需要从2张表中获得像这个棒球棒的输出

Policy No Receipt no Receipt Amount Check No Check Amount  
101        1         100            1         150  
101        2         100            2         150  
101        3         100  

反向情况也是可能的 我可以2收据和多次检查相同的政策
请指教 。

2 个答案:

答案 0 :(得分:1)

听起来你正在寻找OUTER JOIN - 假设你正在加入收据和支票号码字段:

SELECT R.PolicyNo, R.ReceiptNo, R.Amount, C.CheckNo, C.CheckAmt
FROM Receipt R
   LEFT JOIN Checks C ON R.ReceiptNo = C.CheckNo 

也许您还打算加入您的PolicyNo字段 - 如果是,请将其包含在JOIN中:

   LEFT JOIN Checks C ON R.ReceiptNo = C.CheckNo AND R.PolicyNo = C.PolicyNo

答案 1 :(得分:0)

请试一试。

SELECT * FROM Receipt table 
FULL OUTER JOIN Checks Table
ON Receipt table  = Checks Table