我需要帮助。我试图从2个表中获得员工的工资和应税津贴,一个持有员工工资,另一个持有他的津贴。
这两个表共享一个公共列,即login,aspx
。
我的代码仅返回具有应税免税额的员工的结果。
这就是我的尝试:
EmpID
答案 0 :(得分:2)
如果没有看到您的表格,我的猜测就是您的taxStatus = 1
声明中的WHERE
问题。这将删除EmployeeAllowance表没有员工条目的记录。您可以将查询更改为仅从taxStatus=1
表之前中提取EmployeeAllowance
个记录,然后将其加入:
SELECT Employee.EmpID,
amount AS Allw,
bSalary
FROM Employee
LEFT JOIN EmployeeAllowance ON
Employee.EmpID = EmployeeAllowance.EmpID AND
employeeAllowance.taxStatus = 1
WHERE Employee.EmpID = 'PC899'
这相当于在加入之前执行子查询以限制该表:
SELECT Employee.EmpID,
amount AS Allw,
bSalary
FROM Employee
LEFT JOIN (SELECT * FROM EmployeeAllowance WHERE taxStatus = 1) as ea ON
Employee.EmpID = ea.EmpID
WHERE Employee.EmpID = 'PC899'
这只是第一个不那么冗长。