复杂查询连接检查值不存在 [英] complex query join checking that value does not exist

查看:29
本文介绍了复杂查询连接检查值不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在努力应对查询的巨大挑战.我有两张桌子,第一个有

I am struggling with a great challenge of a query. I have two tables, first has

Tb1身份证预定日期rteID

Tb1 drID schedDate rteID

第二个:

Tb2身份证名称名称活跃

Tb2 drID FName LName Active

Tb1 drID 必须检查 Null 或空白并匹配 schedDate 和 drID 不能有任何与 Tb2.drID 匹配所选日期的值,检查 Null 和 '' 基本上就是这样做的.

Tb1 drID must be checked for Null or blank and match on schedDate and drID can not have any values that match Tb2.drID for date selected, checking for Null and '' essentially do this.

SELECT drID, schedDate, rteID
FROM            Tb1
WHERE        (drID IS NULL OR drID = '') AND (schedDate = 11 / 1 / 2012)

根据所有这些,我需要从 TB2 drID、Fname、LName 返回,其中 Active = True 并且 drID 不存在于 tb1 中所选 schedDate 的任何记录中.

From all of this I need to return from TB2 drID, Fname, LName Where Active = True and drID does not exist on any record in tb1 for the schedDate selected.

对于任何可能的日期,都有许多 tb1 rteID 记录.

There are many tb1 rteID records for any possible date.

感谢您对此提供的任何帮助,感谢您的大力支持.

Thank you for any help on this and huge Holiday Thank You.

推荐答案

你能否让你的 select 语句成为子查询,例如:

Can you make your select statement a subquery for example:

SELECT drID, Fname, LName
FROM   TB2
WHERE  Active = True 
 AND   drID NOT IN (
       SELECT drID
       FROM   Tb1
       WHERE  (drID IS NULL OR drID = '')
        AND  (schedDate = 11 / 1 / 2012)
       )

编辑
处理 schedDate 为空的情况,然后

Edit
To handle the case that the schedDate is null then

SELECT drID, Fname, LName
FROM   TB2
WHERE  Active = True 
 AND   drID NOT IN (
       SELECT drID
       FROM   Tb1
       WHERE  (drID IS NULL OR drID = '')
        AND  (schedDate = @yourDate OR schedDate IS NULL)
       )

编辑 2
要处理 drID 为空的情况,您可以使用 NOT EXISTS 方法,如这篇关于 不存在与不存在

SELECT drID, Fname, LName
FROM   TB2
WHERE  Active = True 
 AND   NOT EXISTS (
       SELECT drID
       FROM   Tb1
       WHERE  (schedDate = @yourDate) 
        AND   Tb1.drID = TB2.drID
       )

这篇关于复杂查询连接检查值不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆