有两个表
A(UCID,Create_Date,Av_ID,Phone_No)
B(UCID,创建日期,Av_ID,电话号码)
我需要首先基于UCID提取A中存在但B中不存在的记录,在那之后,有可能未在B中捕获UCID(在这种情况下UCID将为null),因此要获取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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句