有两张桌子
1)HR_PAY_EMPLOYEE_PAYSLIP_HISTORY_DETAILS
2)HR_PAY_EMPLOYEE_PAYSLIP_HISTORY
表1有PAY_HEAD_ID,PAYSLIP_HISTORY_ID和VALUE作为其列
表2有EMPLOYEE_ID,PAYSLIP_HISTORY_ID作为其列
我在PAYSLIP_HISTORY_ID上映射表1和表2以检索EMPLOYEE_ID,PAY_HEAD_ID,VALUE
问题是,所有员工都没有PAY_HEAD_ID和VALUEs
如何检索所有员工的所有PAY_HEAD_ID及其值(0.00,如果未存储该值)?
答案 0 :(得分:1)
这可能会略有不同,具体取决于您使用的SQL方言,但您需要使用左外连接,如下所示:
SELECT
EMPLOYEE_ID,
PAY_HEAD_ID,
isnull(VALUE, 0.00) as VALUE
FROM
HR_PAY_EMPLOYEE_PAYSLIP_HISTORY HISTORY
LEFT OUTER JOIN HR_PAY_EMPLOYEE_PAYSLIP_HISTORY_DETAILS DETAILS
ON HISTORY.PAYSLIP_HISTORY_ID = DETAILS.PAYSLIP_HISTORY_ID
答案 1 :(得分:0)
这取决于您使用的数据库软件,但大多数都有一个NVL()函数,允许您更改NULL的值。如果它是一个空字符串而不是null,请使用DECODE()(或等效的)语句来更改其值。