[英]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.