2

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

        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。

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

4

2 回答 2

4

这应该这样做:

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
于 2012-05-31T13:48:48.470 回答
0

尝试这个。我不确定在 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
于 2012-05-31T13:49:27.190 回答