如何从 MySQL 中的多个表中获取以下结果

时间:2021-07-08 15:55:28

标签: mysql sql

我有下表

users (PF_NO,NAME_OF_STAFF,DESIGNATION,ROLE,WORKING_STATION,ROLE)
groups(PF_NO,seniority)
holidays(PF_NO,DATE,REASON)
entry(PF_NO,DATE)

基本上,我想打印下面的报告 This is my required report

所以在这里我想从多个表中获取详细信息,新列 isdone 将包含 Yes 仅当用户在 holidays 或 {{ 1}} 表和 entry 如果用户在 Noholidays 表中都没有给定日期的条目,我实际上想检查用户必须声明他是度假或进入。

我在下面尝试了这个自己的查询,我是 SQL 新手,我知道我的查询可能不是最佳的,也没有给出想要的结果

entry

这导致 current

所以我想用 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 多获取一列,以便我可以检查是否输入了今天的数据,请帮助我。

1 个答案:

答案 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 JOINholidays 中是否有匹配的行。由于 entry 中可以有多行,因此请使用只返回其中之一的子查询进行连接,否则结果中会出现重复的行。

entry