我在SQL Server 2008中有这三个表:
表1 - 某事
ID Title Tags
---------------------------
1 Test1 a, aa, b
2 Test2 a, b
3 Test3 b, bb
表2 - 标签
ID Tag
----------
1 a
2 b
3 aa
4 bb
表3 - 多对多关系表btw Table1和Table2
ID table1ID table2ID
问题/问题:我需要一些SQL能够循环遍历每个Table1行的逗号分隔标记,在Table2(Tag)中搜索匹配,并将关系值插入Table3 ...就像这样结果:< / p>
表3 - 多对多关系表:
ID t1ID t2ID
-----------------
1 1 1
2 1 3
3 1 2
4 2 1
5 2 2
6 3 2
7 3 4
NB! 'a'和'aa','b'和'bb'之间没有匹配/关系,依此类推。只有'严格'匹配。
是的 - 当我在Table3中生成值时 - 我将删除Table1中的Tags-column(因为它不再是必需的)。
请帮忙。我是一个绝望的新手!
请原谅一个愚蠢和天真的新手 - 我试图寻找一个解决方案,但将这个问题转化为一个简单的搜索术语有点复杂 - 我可能忽略了类似的问题
答案 0 :(得分:1)
试试这个:
Select * into Table3 from (
select ROW_NUMBER() over (ORDER BY Something.id, Tags.id) as id
, Something.id as t1ID
, Tags.id as t2ID
from Something, tags
where ', ' + Something.tags + ',' like '%, ' + tags.Tag + ',%')