1

我有三张桌子

员工 empId int pk empname varchar

customersite empid int pk fk custid int pk fk startdate date pk enddate date

employeeassignment custid int pk 站点名称 varchar

我的问题是

如何使用今天在客户站点上的人员的站点名称显示我们所有员工的姓名。对于今天不在客户网站上的人,请显示他们的姓名和网站名称的“N/A”。

我到目前为止

SELECT
e.EmpName,
cs.SiteName
FROM
EmployeeAssignment ea
INNER JOIN
Employee e
ON
e.EmpId = ea.EmpId
INNER JOIN
CustomerSite cs
ON
cs.CustId = ea.CustId

这给了我今天工作的所有员工,包括他们的姓名和地点。

非常感谢您的任何帮助谢谢

4

1 回答 1

1

您应该使用外连接而不是内连接:

SELECT e.EmpName, IFNULL(cs.SiteName, 'N/A') AS SiteName
FROM Employee e 
LEFT JOIN EmployeeAssignment ea ON e.EmpId = ea.EmpId 
LEFT JOIN CustomerSite cs ON cs.CustId = ea.CustId 

您可能还想添加其他条件,例如限制日期。

于 2012-07-16T11:27:34.283 回答