首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql server左加入filter - sql server 2012

sql server左加入filter - sql server 2012
EN

Stack Overflow用户
提问于 2015-03-14 00:29:45
回答 2查看 38关注 0票数 0

我有两张桌子。一名雇员和其他休息时间。我想显示“员工”表中的所有记录(左加入),并查看下星期天是否有员工休息(如果在其他表中有记录)。

代码语言:javascript
复制
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

这只是显示我的员工下星期天休息,但其他人没有。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-14 00:39:32

试一试

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2015-03-14 00:41:34

这是因为where子句正在筛选该日期中断的员工。这发生在联接之后,因此不包括没有日期的员工。将这个标准移到on子句中将解决问题。

代码语言:javascript
复制
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 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29044070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档