You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询问题:需显示所有员工,无论是否关联plannerEntries记录

问题分析

你的SQL存在两个核心问题,导致无法显示所有员工:

  • WHERE子句中对PP.workDate的过滤条件,会直接排除所有没有plannerEntries记录的员工——这类员工的PP.workDate为NULL,NULL与任何值比较都不满足条件,最终被WHERE过滤。
  • INNER JOIN [Job File]会过滤掉无对应job记录的plannerEntries,连带那些没有plannerEntries的员工也被排除。
修改后的SQL
SELECT [EL].[Employee_Numer], 
       [PP].[workDate], 
       [PP].[jobNo],    
       [PP].[workDescription], 
       [PP].[timeOfDay], 
       [JF].[Description], 
       [EL].[Forename], 
       [EL].[Surname]
FROM   [Employee_List] AS EL
  LEFT JOIN plannerEntries AS PP
    ON [PP].[employeeNumber] = [EL].[Employee_Numer]
    AND [PP].[workDate] >= '$monday'
    AND [PP].[workDate] <= '$sunday'
  LEFT JOIN [Job File] AS JF
    ON [PP].[jobNo] = [JF].[Job No]
ORDER BY [EL].[Employee_Numer] ASC;
关键修改说明
  1. 以员工表为主表做LEFT JOIN:从Employee_List出发左连接plannerEntries,确保所有员工记录都被保留,无论是否有对应的规划条目。
  2. 日期过滤移至JOIN ON子句:仅筛选符合日期范围的plannerEntries记录,不会过滤掉无规划条目的员工。
  3. Job File改用LEFT JOIN:即使规划条目无对应job记录,或员工根本没有规划条目,都不会被排除,对应Job File字段会显示为NULL。

内容的提问来源于stack exchange,提问作者Jackawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:15:32