首页 新闻 会员 周边

询问一条 sql 语句

0
[已解决问题] 解决于 2010-03-15 09:37

3个表

 文章 、 tag、文章和 tag的关联表

 

比如我已知一篇文章的id,怎么根据这篇文章的id,获得所有的相关文章?

相关就是说:

文章1有标签  aa,bb,cc

所有的拥有,aa,或者bb,或者cc的文章

 

怎么实现?

Dozer的主页 Dozer | 初学一级 | 园豆:30
提问于:2010-03-14 22:04
< >
分享
最佳答案
0

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
          )
     )
)
有些啰嗦,可以用子查询一点点实现,比较好理解

小丁 | 菜鸟二级 |园豆:301 | 2010-03-14 22:34
其他回答(1)
0

这是个典型的TAG匹配模型,建议楼主建立一个匹配机制,并通过服务或专用的分析匹配数据库,如向量模型等处理这个问题。

而不宜用where inn  SQL语句来解决。这样做没什么性能可言。

邀月 | 园豆:25475 (高人七级) | 2010-03-14 23:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册