我有一个棘手的问题,我无法找到适合我的数据库架构的答案。
我们说我有下表:
CONNECTIONS
以下栏目
connID,StartNode,EndNode
并且假设您可以从StartNode到EndNode进行双向连接
StartNode - >终端节点
EndNode - >的StartNode
它表示在一张桌子里 如下:
CONNECTIONS
|connID | StartNode | EndNode |
| 1 | 9 | 10 |
| 2 | 10 | 9 |
| 3 | 9 | 11 |
我的问题是:什么SQL语句可以帮助我检索所有双向连接(在这种情况下,上面的前2个连接是connId 1和2?
答案 0 :(得分:1)
您可以将表连接到自己,将开始和结束之间的相等性 如下例所示
select A.* from connections A
inner join connections B on (A.startnode=B.endnode and A.endnode = B.startnode)