我正在使用MSSQL,并且我已经生成了一个标签表,例如:
tag_id | name
0 | compost
1 | ritual
... ...
我有另一张这样的表
obj_id | name | desc
0 | obj1 | used for ritual
1 | obj2 | used for compost
2 | obj3 | compost and ritual
3 | obj4 | compost, ritual, compost
...
我正在尝试编写一个查询或过程来填充一个联结表,其中标签类似于desc,没有重复(但允许一个项目使用多个标签)。例如,它应输出:
tag_id | obj_id
0 | 1
0 | 2
0 | 3
1 | 0
1 | 2
1 | 3
答案 0 :(得分:4)
这是您想要的查询:
select t.tag_id, o.obj_id from tags t
inner join othertable o
on o.[desc] like '%' + t.name + '%'
desc
作为列名。这会强制您将名称放在方括号中[desc]
,因为您正在使用列名称的关键字。