我有一个SQL Server数据库表( DuplicateIds ),其中包含来自另一个表(单词)的重复单词的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语句?
答案 0 :(得分: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
答案 1 :(得分: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