我有两张桌子:
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或没有。
我希望首先匹配所有匹配,然后检查链接表中是否已经链接了它们,并过滤掉那些并需要休息匹配。
答案 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