Sql 在左连接条件中使用WHERE
我试图找出是否可以在条件上使用左连接的WHERE。我希望这是有道理的 以下是脚本:Sql 在左连接条件中使用WHERE,sql,sql-server,tsql,left-join,where-clause,Sql,Sql Server,Tsql,Left Join,Where Clause,我试图找出是否可以在条件上使用左连接的WHERE。我希望这是有道理的 以下是脚本: SELECT DISTINCT SLA.slxTELEMAGICID, sfAccount_Number__c = A.Account_Number__c, SLA.slxACCOUNTID, sfId = A.Id INTO #sfEXACTIVEACCOUNTS FROM #slxACTIVEACCOUNTS SLA
SELECT DISTINCT
SLA.slxTELEMAGICID,
sfAccount_Number__c = A.Account_Number__c,
SLA.slxACCOUNTID,
sfId = A.Id
INTO #sfEXACTIVEACCOUNTS
FROM #slxACTIVEACCOUNTS SLA
LEFT JOIN ACCOUNT A
ON SLA.slxTELEMAGICID = A.Account_Number__c
WHERE SLA.slxTELEMAGICID is NULL OR SLA.slxTELEMAGICID ='N' OR SLA.slxTELEMAGICID <> A.Account_Number__c
ORDER BY SLA.slxTELEMAGICID, A.Account_Number__c
上述脚本的问题在于,它似乎无法提取SLA.slxTELEMAGICID A.Account\u Number\uu c.记录列表。我不太明白您想要实现什么,您能详细说明一下吗 您的左join在slxTELEMAGICID和account_number____c上声明了join,但是在您声明的where子句中,您还可以检索join子句中加入的两个不匹配的记录,除非此条件不满足,因为它们已经被join过滤了 您的联接条件本身在联接中可以有多个条件,例如:
SELECT DISTINCT
SLA.slxTELEMAGICID,
sfAccount_Number__c = A.Account_Number__c,
SLA.slxACCOUNTID,
sfId = A.Id
INTO #sfEXACTIVEACCOUNTS
FROM #slxACTIVEACCOUNTS SLA
LEFT JOIN ACCOUNT A ON SLA.slxTELEMAGICID = A.Account_Number__c
OR SLA.slxTELEMAGICID is NULL
OR SLA.slxTELEMAGICID ='N'
OR SLA.slxTELEMAGICID <> A.Account_Number__c
ORDER BY SLA.slxTELEMAGICID, A.Account_Number__c
虽然这看起来真的会返回所有行,不是吗?如果你要加入slxTELEMAGICID=account\u number\u\u c,当它们不相等时,那就是一切了是吗?保存空值