Sql 从具有重复项的表生成连接表

Sql 从具有重复项的表生成连接表,sql,sql-server,duplicate-data,auto-generate,database-table,Sql,Sql Server,Duplicate Data,Auto Generate,Database Table,我有一个SQL Server数据库表(DuplicateID),其中包含另一个表(words)中重复单词的ID。下面是DuplicateID表中数据的示例: word_id | word ---------------------------------- 244 | ape 603 | ape 1873 | ape 372 | banana 3095

我有一个SQL Server数据库表(DuplicateID),其中包含另一个表(words)中重复单词的ID。下面是DuplicateID表中数据的示例:

        word_id  |  word
----------------------------------
        244      |  ape
        603      |  ape
       1873      |  ape
        372      |  banana
       3095      |  banana
……等等。通常只有两个或三个副本,但也有10个或更多副本的情况

现在我想使用这个表和副本来创建一个新表,连接相同单词的ID。我猜新的桌子会像这样:

        word_id  |  connected_id
----------------------------------
        244      |    603
        244      |   1873
        603      |    244
        603      |   1873
       1873      |    244
       1873      |    603
        372      |   3095
       3095      |    372
有了这个表,我可以用它的ID查找某个单词,并得到所有相同单词的ID

现在我想知道是否可以编写一个(T)SQL语句,使用DuplicateID中的数据为我生成这个新的连接表

这应该可以做到:

SELECT
   di.word_id
  ,di2.word_id  connected_id
 into NewTable
 from DuplicateIds di
  inner join DuplicateIds di2
   on di2.word = di.word
    and di2.word_id <> di.word_id
选择
di.word\u id
,di2.word\u id已连接\u id
变成牛顿表
来自重复ID di
内部连接重复ID di2
关于di2.word=di.word
和di2.word\u id di.word\u id
这应该可以做到:

SELECT
   di.word_id
  ,di2.word_id  connected_id
 into NewTable
 from DuplicateIds di
  inner join DuplicateIds di2
   on di2.word = di.word
    and di2.word_id <> di.word_id
选择
di.word\u id
,di2.word\u id已连接\u id
变成牛顿表
来自重复ID di
内部连接重复ID di2
关于di2.word=di.word
和di2.word\u id di.word\u id

试试这个。我不确定sql server中如何实现不相等

 INSERT INTO DuplicateIds 
 SELECT a.word_id, b.word_id  connected_id
 from Words a,Words b
 where a.word=b.word
 and a.word_id <> b.word_id
插入到重复ID中
选择a.word\u id,b.word\u id已连接\u id
从a字到b字
其中a.word=b.word
和a.word\u id b.word\u id

试试这个。我不确定sql server中如何实现不相等

 INSERT INTO DuplicateIds 
 SELECT a.word_id, b.word_id  connected_id
 from Words a,Words b
 where a.word=b.word
 and a.word_id <> b.word_id
插入到重复ID中
选择a.word\u id,b.word\u id已连接\u id
从a字到b字
其中a.word=b.word
和a.word\u id b.word\u id

嗨!这个解决方案是否要求我首先复制表DuplicateID(在您的示例中我指的是di2表)?无需担心-我刚刚看到那些包含别名的表。它似乎工作得很好-创建了一个包含2534条新记录的表!你好这个解决方案是否要求我首先复制表DuplicateID(在您的示例中我指的是di2表)?无需担心-我刚刚看到那些包含别名的表。它似乎工作得很好-创建了一个包含2534条新记录的表!