繁体   English   中英

根据多个条件,获取一个表中的记录,但不提取另一个表中的记录

[英]Fetching Records present in one table but not in other based on multiple conditions

有两个表

A(UCID,Create_Date,Av_ID,Phone_No)

B(UCID,创建日期,Av_ID,电话号码)

我需要首先基于UCID提取A中存在但B中不存在的记录,在那之后,可能没有在B中捕获UCID(在这种情况下UCID将为空),因此要获取A中存在的记录而不是B,基于其余三列(Create_Date,Av_ID,Phone_No)。

我做了那么远

SELECT A.* INTO #TEMP FROM A LEFT JOIN B WHERE B.UCID IS NULL
SELECT A.* FROM #temp JOIN B on A.CREATE_DATE= B.CREATE_DATE WHERE A.PHONE_NO=B.PHONE_NO AND A.AV_ID=B.AV_ID

由于有许多记录,因此执行大约需要8分钟,因此,如果有任何方法可以使用单连接或不使用临时表来执行相同操作。请帮助

单查询

SELECT A.* 
FROM A 
    LEFT JOIN B on (A.UCID = B.UCID) or 
        (B.UCID IS NULL AND A.CREATE_DATE= B.CREATE_DATE AND A.PHONE_NO=B.PHONE_NO AND A.AV_ID=B.AV_ID)
WHERE B.UCID IS NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM