【问题标题】:Need to find the free appointments in my second table需要在我的第二张桌子上找到免费约会
【发布时间】:2020-04-09 09:52:13
【问题描述】:

所以我得到了我的第一张带有兽医的桌子..

Vet 1/Branch 5  
Vet 2/Branch 5
Vet 3/Branch 6
Vet 4/Branch 6

第二张桌子上有约会...

Appointment1...1stJanuary...Vet1
Appointment2...2ndJanuary...Vet3
Appointment3...2ndJanuary...Vet4

在使用 1 月 1 日/5 号分店查询并返回“Vet 2”时,有什么方法可以查看第二张表,因为当时它们没有“预订”/“可用”

SELECT STAFF.FIRST_NAME, STAFF.LAST_NAME
FROM STAFF
FULL OUTER JOIN APPOINTMENT
ON STAFF.STAFF_NO=APPOINTMENT.STAFF_NO
WHERE STAFF.BRANCH_NO='00005'
AND STAFF.JOB_DESC='Vet'
AND APPOINTMENT.APP_DATE_TIME='28-JUL-02';
--AND STAFF.STAFF_NO IS NOT NULL;

如果你明白我的想法,这就是我所尝试的……我想最后一行不起作用,因为“Vet 2”在右表中没有对应的“28-JUL-02”。有什么好办法吗?

【问题讨论】:

    标签: sql oracle join outer-join appointment


    【解决方案1】:

    你在找NOT EXISTS吗?

    SELECT S.FIRST_NAME, S.LAST_NAME
    FROM STAFF S
    WHERE NOT EXISTS (SELECT 1
                      FROM APPOINTMENT A
                      WHERE A.STAFF_NO = S.STAFF_NO AND
                            A.APP_DATE_TIME = DATE '2002-07-28'
                     ) AND
         S.BRANCH_NO='00005' AND
         S.JOB_DESC = 'Vet';
    

    【讨论】:

    • 我很有可能。我迫不及待地想成为这方面的专家。让我在你的帮助下再解决这个问题。非常感谢。
    猜你喜欢
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多