sql查找点对表

时间:2017-09-27 10:49:47

标签: sql ms-access cross-join

我正在努力找到解决所有线路序列的解决方案 在我的表中

有像这样的条目

LineID     PKTID1     PKTID2
1          51         12
2          42         31
3          2          31
4          12         2
5          42         51

我会得到一个特定的行号作为开头,从那里我必须找到所有相似的行如此

初始Line = 2序列将是

2 - > 3 - > 4 - > 1 - > 5 - > 2

我知道如何使用循环等在前端(vb.net)执行此操作,但有没有办法使用sql查询 - (在ACCESS中)

SELECT 
    A.LineID, 
    A.PKTID1, 
    A.PKTID2, 
    B.LineID, 
    B.PKTID1, 
    B.PKTID2
FROM table AS A, table AS B
WHERE 
    (A.PKTID1 <> B.PKTID1 AND A.PKTID2 <> B.PKTID2)
    AND
    ((A.PKTID1 = B.PKTID1 Or A.PKTID1 = B.PKTID2) OR (A.PKTID2 = B.PKTID1 Or A.PKTID2 = B.PKTID2));

这就是我想出来的所以加入所有加入的行但我不知道如何订购它们得到我想要的结果。

0 个答案:

没有答案