3个表
文章 、 tag、文章和 tag的关联表
比如我已知一篇文章的id,怎么根据这篇文章的id,获得所有的相关文章?
相关就是说:
文章1有标签 aa,bb,cc
所有的拥有,aa,或者bb,或者cc的文章
怎么实现?
select * from 文章where 文章id in( select 文章id from 关联表 where tagId in ( select tagid from tag where tag.标签 in ( select tag.标签 from tag join 关联表 on tagID = 关联表tagID where 关联表文章ID= 文章id ) ))有些啰嗦,可以用子查询一点点实现,比较好理解
这是个典型的TAG匹配模型,建议楼主建立一个匹配机制,并通过服务或专用的分析匹配数据库,如向量模型等处理这个问题。
而不宜用where inn SQL语句来解决。这样做没什么性能可言。