我有三张桌子
员工 emp int int pk empname varchar
customersite empid int pk fk custid int pk fk startdate date pk 结束日期
employeeassignment custid int pk sitename 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
这给了我今天工作的所有员工,他们的名字和网站。
任何帮助你都非常感谢
答案 0 :(得分: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
您可能还想添加其他条件,例如限制日期。