我有下表
users (PF_NO,NAME_OF_STAFF,DESIGNATION,ROLE,WORKING_STATION,ROLE)
groups(PF_NO,seniority)
holidays(PF_NO,DATE,REASON)
entry(PF_NO,DATE)
所以在这里我想从多个表中获取详细信息,新列 isdone
将包含 Yes
仅当用户在 holidays
或 {{ 1}} 表和 entry
如果用户在 No
和 holidays
表中都没有给定日期的条目,我实际上想检查用户必须声明他是度假或进入。
我在下面尝试了这个自己的查询,我是 SQL 新手,我知道我的查询可能不是最佳的,也没有给出想要的结果
entry
所以我想用 select users.NAME_OF_STAFF,users.PF_NO,users.WORKING_STATION ,users.DESIGNATION,groups.seniority,users.role
from groups,users
where groups.PF_NO=users.PF_NO
AND users.WORKING_STATION=(
SELECT WORKING_STATION
FROM users
WHERE PF_NO='1'
)
ORDER by groups.seniority
多获取一列,以便我可以检查是否输入了今天的数据,请帮助我。
答案 0 :(得分:1)
使用 print(df)
submit_date approved_date diff
0 2021-01-06 2021-01-19 13
1 2021-01-05 2021-01-05 0
2 2021-01-05 2021-01-05 0
3 2021-01-06 2021-01-07 1
4 2021-01-07 2021-01-07 0
测试 LEFT JOIN
和 holidays
中是否有匹配的行。由于 entry
中可以有多行,因此请使用只返回其中之一的子查询进行连接,否则结果中会出现重复的行。
entry