首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql相关文章

Mysql相关文章
EN

Stack Overflow用户
提问于 2010-08-31 09:45:25
回答 1查看 786关注 0票数 0

我试图让一个查询返回3篇与用户正在阅读的文章相关的文章。为此,我制作了一个表格,其中包含一组与所有文章相关的标签(最多5个标签pr )。条款)。

如何构造我的查询--如何最有效地返回3个相关的articles?

  • Incase没有相关的文章--如何返回3个随机的?

我现在拥有的是:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `j_news` (
  `n_id` smallint(5) NOT NULL AUTO_INCREMENT,
  `n_title` varchar(94) COLLATE utf8_danish_ci NOT NULL,
  `n_text` text COLLATE utf8_danish_ci NOT NULL
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=25 ;


CREATE TABLE IF NOT EXISTS `j_news_tags` (
  `nt_id` mediumint(7) NOT NULL AUTO_INCREMENT,
  `nt_news_id` mediumint(7) NOT NULL,
  `nt_tag` varchar(24) COLLATE utf8_danish_ci NOT NULL,
  PRIMARY KEY (`nt_id`),
  KEY `nt_news_id` (`nt_news_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=1 ;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-31 09:49:39

如果您是,那么您确实在考虑我不久前拥有的性能 。它处理大型数据库,并对不同的查询(都处理标记)进行基准测试。

要缩短它,SQL应该如下所示:

代码语言:javascript
复制
SELECT DISTINCT p . * 
FROM projects p
JOIN projects_to_tags pt ON pt.project_id = p.num
JOIN projects_to_tags x ON x.tag_id = pt.tag_id
AND x.project_id = x -- x is your project ID number
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3607840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档