当与tbl_Linked表连接时,从tbl_customer获取不匹配的行

时间:2013-11-05 13:38:37

标签: sql left-join

我有两张桌子:

tbl_Customer

   CustID   Name   Industry
   101       a       2 
   102      b       1
   103      c       2
   104      d       2

tbl_linked:

Cust1      Cust2     Industry

101         103           2

对于基于Industry(id = 2)的customerID 101,我直接从中获取链接客户 tbl_Linked是103

如果我想要CustID 101的匹配客户,那么在Industry = 2上有两个匹配,它们是103和104.但是由于103已经在链接表中链接,即tbl_Linked,那么我应该仅匹配为104。

希望这有助于理解我的问题,否则请告诉我。

为了得到匹配,我使用了连接*左连接,但它仍然给我103和& 104或没有。

我希望首先匹配所有匹配,然后检查链接表中是否已经链接了它们,并过滤掉那些并需要休息匹配。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。

SELECT t2.CUSTID 
FROM tbl_Customer t1
INNER JOIN tbl_Customer t2 
ON (t1.Industry = t2.Industry)
LEFT OUTER JOIN tbl_linked t3 
ON (t1.CUSTID = t3.Cust1 AND t2.CUSTID = t3.Cust2  AND t1.Industry = t3.Industry)
WHERE t1.CustID <> t2.CustID
AND t1.CustID = 101
AND t3.Cust2 IS NULL