Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL时间表系统_Sql - Fatal编程技术网

SQL时间表系统

SQL时间表系统,sql,Sql,因此,目前我有一个调度系统,它将结果显示在屏幕上,用户可以在屏幕上填充打开的插槽。下面是它当前外观的链接 当我想开始新的一周时,问题就出现了。这个表由63个槽组成。这是我当前使用的当前查询: Select volunteer.F_Name , volunteer.L_Name , session.Session_Id , vol_session.Vol_Id , WEEK(vol_session.Date) From vol_sessio

因此,目前我有一个调度系统,它将结果显示在屏幕上,用户可以在屏幕上填充打开的插槽。下面是它当前外观的链接

当我想开始新的一周时,问题就出现了。这个表由63个槽组成。这是我当前使用的当前查询:

Select  volunteer.F_Name
      , volunteer.L_Name
      , session.Session_Id
      , vol_session.Vol_Id
      , WEEK(vol_session.Date)
From    vol_session
Right Join session
        On vol_session.Session_ID = session.Session_Id
Left Join volunteer
        On volunteer.Vol_ID = vol_session.Vol_Id
Where   WEEK(vol_session.Date) Is Null
        Or WEEK(vol_session.Date) = '6'
Order By session.Session_Id;
如果一个志愿者在另一周选择了相同的时段,那么查询不会显示所有63个结果


正如你所看到的,结果18缺失,因为下周有人占用了这个位置。需要做的是,这个丢失的18个插槽应该显示为空,以便我能够允许它被预订

右连接与左连接相结合。。。太令人困惑了。。。(只切换到左联接,因为
主表左联接可选数据
可选数据右联接主表
更容易理解)您的
右联接
周(vol_session.Date)=“6”
子句的
部分否定,强制它成为
内部联接
。将
WHERE
条件移动到
ON
子句。更好的是,不要在同一个查询中混合使用
LEFT
RIGHT
连接。更好的是,根本不要使用
右连接
。@Siyual,有一个是NULL或-ed。但是,这仍然是一个很好的建议。@jarlh RIGHT,但是
或WEEK(vol_session.Date)='6'
仍然应该过滤记录。@Siyual将查询更改为左连接后,查询只输出3个结果,但我需要全部63个结果才能显示出来