0

我有两张桌子:

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。

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

为了匹配,我使用了 joins *left join,但它仍然给我 103 和 104 或没有。

我想先得到所有匹配,然后检查链接表(如果它们中的任何一个已经链接),然后将它们过滤掉并需要休息作为匹配。

4

1 回答 1

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
于 2013-11-06T11:00:28.083 回答