我的情况与this question中提出的情况极为相似。我的问题是,是否有可能在没有明确定义连接表的情况下创建这样的关系(例如,在该示例中明确定义'BookmarkTag'表)。
为了清楚起见,我的情况是:
文件表
标签表
用户表
文件和标签之间存在M:M关系,因为现有标签可以附加到多个文件。我还想捕获哪个用户将特定标签实例附加到特定文件。
答案 0 :(得分:0)
好的,好像您需要tags
表中的File
字段。
然后使用分离的彗星字符串来保存所有标签
update File
set tags = '<c#>, <sql>, <mysql>'
标记表:
id tag
1 <c#>
2 <sql>
3 <mysql>
加入将是:
select F.*, T.*
from File F, Tag T
where exists (SELECT *
FROM Tag T1
WHERE CHARINDEX(T1.tag, F.tags) > 0 )
注意:CHARINDEX
是sql server for find inside string。你没有指定任何rdbms所以我只选择一个。