我从一个简单的关系列表中解决了建立网络的问题。目前我能理解的唯一方法是使用递归循环......
假设您有一个发件人和收件人ID表,这些表构成了双方之间的关系。该关系总共为n:m,但每个记录只有一个发送者和一个接收者。我们现在需要创建一个网络,确定此列表中的哪些(子)组相互作用,哪些是独立的。因此,我们需要创建“网络”。最小的可能示例如下:
Sender | Receiver | Connection ID
-------+----------+----------------
A. | B. | 1
B. | C. | 2
D. | E. | 3
预期结果将创建网络1,包括A,B,C,相应的连接1和2以及网络2,包括D和E以及连接3.
当前解决方案是跨同一列表的递归循环。如果有用可以发布SQL但可能更令人困惑。很想知道是否有更优雅的方式。
答案 0 :(得分:0)
这就是你要找的东西:
- 样本数据:
(defun display-keyboard-mapping (display)
(declare (type display display))
(declare (clx-values (simple-array keysym (display-max-keycode keysyms-per-keycode))))
(setf (display-keysym-mapping display) (keyboard-mapping display)))
- QUERY:
IF OBJECT_ID('tempdb..#Temp1') IS NOT NULL
DROP TABLE #Temp1
CREATE TABLE #Temp1 ( Sender VARCHAR(1), Receiver VARCHAR(1), ConnectionID INT)
INSERT INTO #Temp1
VALUES
('A','B',1),
('B','C',2),
('D','E',3)
- 结果: