我很难理解如何在视图方面显示“三篇最受欢迎的文章”(“status:200 ok”)的查询。
我目前正在处理两个表。
日志表
文章表
这些表中的列:表“public.log”
Column | Type | Modifiers
--------+--------------------------+--------------------------------------------------
path | text |
ip | inet |
method | text |
status | text |
time | timestamp with time zone | default now()
id | integer | not null default nextval('log_id_seq'::regclass)
索引:
和
Table "public.articles"
Column | Type | Modifiers
--------+--------------------------+-------------------------------------------------------
author | integer | not null
title | text | not null
slug | text | not null
lead | text |
body | text |
time | timestamp with time zone | default now()
id | integer | not null default nextval('articles_id_seq'::regclass)
索引:
.
到目前为止,我已经根据自己的水平和对sql的当前理解编写了这个查询。。。
SELECT articles.title, log.status
FROM articles join log
WHERE articles.title = log.path
HAVING status = “200 OK”
GROUP BY title, status
显然,这是不正确的。我想能够从数据库中提取三个最流行的文章,我知道“匹配”的200确定与“文章标题”将显示或计数在我一个“看法”或命中。我的思考过程是这样的,我需要通过创建一个查询来确定article.title=log.path(1 unique)在日志数据库中显示了多少次(状态为200ok)。我的任务实际上是编写一个程序,用“[我的代码得到]数据库,通过使用连接、聚合和where子句来完成繁重的工作。。在python代码本身中进行最小的“后处理”
任何解释,想法,小费都很感激。。。
1条答案
按热度按时间kiz8lqtg1#
也许以下是你的想法:
这将返回具有最高状态200命中率的三篇文章标题。这个答案假设您使用的是mysql。