在 LEFT JOIN 条件中使用 WHERE <>
Using WHERE <> in LEFT JOIN criteria
我想知道是否可以在 Left JOIN ON 条件上使用 WHERE <>
。我希望这是有道理的。
这是脚本:
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_Number__c
.
的记录列表
我不太明白你想要完成什么,你能详细说明一下吗?
您的左连接表示在 slxTELEMAGICID
和 account_number__c
上连接它们,但在您的 where 子句中您声明您还可以检索在连接子句中连接的两个记录不匹配 - 除非不满足此条件,因为它们已被连接过滤。
您的连接条件本身可以在连接中有多个条件,例如:
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
虽然这看起来真的会 return 所有行不是吗?如果您加入 where slxTELEMAGICID = account_number__c
并且当它们不相等时,那就是一切,是吗? (可能保存空值)
我想知道是否可以在 Left JOIN ON 条件上使用 WHERE <>
。我希望这是有道理的。
这是脚本:
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_Number__c
.
我不太明白你想要完成什么,你能详细说明一下吗?
您的左连接表示在 slxTELEMAGICID
和 account_number__c
上连接它们,但在您的 where 子句中您声明您还可以检索在连接子句中连接的两个记录不匹配 - 除非不满足此条件,因为它们已被连接过滤。
您的连接条件本身可以在连接中有多个条件,例如:
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
虽然这看起来真的会 return 所有行不是吗?如果您加入 where slxTELEMAGICID = account_number__c
并且当它们不相等时,那就是一切,是吗? (可能保存空值)