如何在sequelize中创建三向连接表而不显式定义连接表

时间:2015-08-31 22:39:59

标签: sql node.js join sequelize.js

我的情况与this question中提出的情况极为相似。我的问题是,是否有可能在没有明确定义连接表的情况下创建这样的关系(例如,在该示例中明确定义'BookmarkTag'表)。

为了清楚起见,我的情况是:

文件表

标签表

用户表

文件和标签之间存在M:M关系,因为现有标签可以附加到多个文件。我还想捕获哪个用户将特定标签实例附加到特定文件。

1 个答案:

答案 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所以我只选择一个。