TEL:400-8793-956
当前位置:程序、服务器

带有两个表的 SQL 查询 / 困难

提问者: 近期获赞: 浏览人数: 发布时间:2022-03-20 13:14:34

 问:我有一个数据库,其中记录了员工的正常工作时间。这一方面通过 avaible_week 表完成,另一方面通过 avaible_daily 表完成。在周表中记录员工的每周标准工作时间。如果有人在休假或生病,这将出现在每日表格中。

 
状态中记录是否有人可用 0=不可用 1=可用
 
现在我们想在 SQL 查询中显示某天有空的员工。
 
与 SELECT short FROM avaible_week WHERE day=1 AND hour =8.
 
我得到了目前可用的缩写词。但是如何将输出与另一个表链接,其中有人不可用?
 
Week Table:
|id|short|day|time|state|
|1 |XY   |1  |8   |1    |
 
Day Table:
|id|short|day       |time|state|
|1 |XY   |09-04-2022|8   |0    |
注意:我仍然有带有名称和时间的表,但我可以稍后自己实现 EQUI-JOIN。
 
 
答:我可以建议您尝试这种方法并进行必要的修复:
 
SELECT short FROM available_week WHERE (day=1 AND hour =8) 
NOT IN (SELECT short FROM available_day WHERE state=0 AND day='2022-04-09') ;
这应该首先从 available_week 中选择所有,然后删除在 available_day 中 state=0 的那些。
上一篇: 有没有办法在不重新加载页面的情况下从数据库中获取记录
下一篇: 转换为 VB.NET 的 Web 服务中的“无法加载类型”