我有两张桌子。一名雇员和其他休息时间。我想显示“员工”表中的所有记录(左加入),并查看下星期天是否有员工休息(如果在其他表中有记录)。
SELECT T1.idEmp
, T1.fname
, T1.lname
, T1.number
, T2.idGuard
, T2.date
FROM
tblEmp AS T1 LEFT JOIN tblEmpGuard AS T2
ON
T1.idEmp = T2.idEmp
WHERE
date = @date这只是显示我的员工下星期天休息,但其他人没有。
发布于 2015-03-14 00:39:32
试一试
SELECT T1.idEmp
, T1.fname
, T1.lname
, T1.number
, T2.idGuard
, T2.[date]
FROM tblEmp AS T1
LEFT JOIN tblEmpGuard AS T2
ON T1.idEmp = T2.idEmp
AND T2.[date] = @date发布于 2015-03-14 00:41:34
这是因为where子句正在筛选该日期中断的员工。这发生在联接之后,因此不包括没有日期的员工。将这个标准移到on子句中将解决问题。
SELECT T1.idEmp, T1.fname, T1.lname, T1.number, T2.idGuard, T2.date
FROM tblEmp AS T1
LEFT JOIN tblEmpGuard AS T2
ON T1.idEmp = T2.idEmp
AND T2.date = @date https://stackoverflow.com/questions/29044070
复制相似问题