在 Excel 或 SQL 中交叉加入

Cross join in Excel or SQL

我正在使用 Gephi 创建网络图,这是我拥有的一小部分数据:

ID  Label
1   Sleep quality   
2   Stress  
3   Healthy Eating  
4   Tremor  
5   Balance 
6   Drooling    
7   Exercise    
8   Mood    
9   Speech  
10  Parkinson's On-Off

所以我希望我的图表有这 10 个节点。

然后对于边缘,我有:

Source Target   User
1       5       5346
5       4       5346
4       7       5346
7       6       5346
6       9       5346
9       3       5346
3       2       5346
2       8       5346
8       10      5346

"User" 列是我添加的内容,用于解释我遇到的问题。我正在使用一个大数据库(在 SQL 中)来获取这些数据。在移动 phone 应用程序上,用户 select 10 种不同的可用选择(如节点中所列)。在 SQL 我可以很方便地查询数据,这样我就可以获得每个用户的 10 个选择。

用边中的信息创建一个图很容易table,但我还想将每条边连接到所有其他边,这对我来说很重要。因此,例如,1 连接到 "target" 中的所有那些。然后 5 连接到 "target" 中的所有节点,直到每个用户的所有节点都相互连接。

我可以手动执行此操作,但原始数据集有 2000 多个用户,这将花费很长时间。我知道有一种使用交叉连接的方法,可能在 Excel 或 SQL 中...但我不确定如何执行此操作..

谢谢!

您可以将此交叉连接放入您的 SQL 中:(它将列出所有源和所有可能的目标。)

   (SELECT e.Source as Source, n.ID as Target
      FROM
      (SELECT DISTINCT Source FROM tblEdges) as e
      cross join (SELECT DISTINCT ID FROM tblNodes) as n
      ) as xCross