我有三个表
员工 empId int pk 员工名 varchar
客户网站 empid int pk fk custid int pk fk 开始日期 pk 结束日期
员工分配 监护人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
它给我今天工作的所有员工,以及他们的姓名和网站。
非常感谢您的帮助
最佳答案
您应该使用外连接而不是内连接:
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
您可能还想添加其他条件,例如限制日期。
关于MySQL 关于 employee 和 staff 以及使用连接的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503259/