电视节目推荐算法和SQL

有可以通过如下表可以看出一个id被引用的用户:

users: user_id

我试图在一个解决方案,用于跟踪秀意见

tvshow_hits: user_id|show_id

还设有在它的细节的表:

tvshows: show_id|name

但是,这并不需要,我愿意改变。 我觉得这是没有必要的跟踪个人观点更多,如果他们都看过了,因为不同的音乐电视节目和电影都只能眼睁睁看着一次,如果他们看到他们又没有携带任何“权重”。

所以现在我会努力倒退:结果页面应该是这样的:

人们谁也表手表

South Park 40% Family Guy 20% Something 10%

所以,我需要的是一个查询,(如果需要)PHP代码

选择节目(在 P DESC的),谁的人看它相对于其他节目(已被观看了谁看过的用户)的百分比的形式 P,其中显示(S)已经被观看的用户量谁看过LIMIT x

我希望这是有道理的,是解释它是我最好的办法,随意想别的办法做我想要做的。 所有的建议和帮助的欢迎。

--------------解决方案-------------

未经测试,但这样的事情:

SELECT name, Count(1) AS no_users
FROM
tvshowhitdetails
WHERE
userid IN (
SELECT userid
FROM
tvshow_hits
WHERE
showid = @showid
)
AND
showid <> @showid
GROUP BY
name
ORDER BY
no_users DESC

会给你一个节目的名字tvshowhitdetails这里是一个视图,它加入你的show_hits并显示详细信息表)和谁看过它的人的数量。 然后,你可以在另一个查询用户总数达到锻炼身体的百分比。

更新
你tvshowhitdetails观点如下:

CREATE VIEW tvshowhitdetails
AS
SELECT tvshow_hits.UserId, tvshow_hits.ShowId, tvshows.Name
FROM tvshow_hits LEFT OUTER JOIN
tvshows ON tvshow_hits.ShowId = tvshows.ShowId

从展会开始,你可以查看谁看了这个节目的其他用户。 然后你可以看一下显示,与其他用户观看。 基时,它由另一个节目,并通过由观察者所选择的节目的总数除以计算百分比。

下面是一个例子查询:

select
other_shows.showid as ShowId
, COUNT(other_shows.userid) / (
select count(*) from tvshows_hits where showid = @showid
) as Percentage
from tvshows_hits other_users
inner join tvshows_hits other_shows
on other_shows.userid = other_users.userid
and other_shows.showid <> @showid
where other_users.showid = @showid
and other_users.userid <> @userid
group by other_shows.showid

分类:php 时间:2012-01-01 人气:0
本文关键词: PHP,MySQL和SQL
分享到:

相关文章

  • 从蟒蛇使用MySQL和SQL Server 2012-01-21

    我需要编写与使用Python应用程序同时MySQL和SQL服务器有一个一般的Python模块或库,可以同时访问MySQL和SQL服务器DBI用Perl或者我应该使用2库,如果是哪个库你推荐. --------------解决方案------------- 我猜你正在寻找SQLAlchem​​y的. 你可能会需要一些时间去到它,但它是无价的,一旦你已经覆盖了基础. SQLAlchem​​y的作为一个前端使用Python的DB-API等,特定数据库的库 - 但除此之外,它提供了一个查询生成器库,抽象

  • 什么是MYSQL的SQL模式(或任何RDBMS)? 2012-03-28

    什么是MYSQL的SQL模式(或任何RDBMS)? 还什么是对的SQL模式和为什么是最好的选择? 如果我能有一个外行人解释了例子将是巨大的! 先感谢您 ;-) --------------解决方案------------- 在SQL模式影响MySQL的行为在某些情况下. 例如,它会影响你尝试插入超长内容到文本类型的列会发生什么. 比方说,你有一个像一列CHAR(10) CHARACTER SET ascii NOT NULL并尝试插入'abcdef abcdef' 这是13个字符,这是太长. 如

  • PHP MySQL的SQL语法分析器(INSERT和UPDATE) 2012-05-15

    我期待解析INSERT和UPDATE MySQL的SQL查询在PHP中,以确定从哪些原始数据作出什么样的变化. 现在,这将是很容易建立,但我想看看是否有在PHP中的任何现有的库来做到这一点. 基本上,我有什么是所有已经运行在一个数据库上的查询表. 我已经分离出的表名和查询类型. 我期待创建一个完整的更改日志基于该数据用户观看,所以我需要得到原始的INSERT那些每次更新中所做的更改的值,然后. 最后,我需要的字段名称和新的价值,并与记录ID(S). 我会做检查/美化的其余部分,其中包括列名人类可

  • MySQL的SQL语句语法,是有文件的表示法的传奇? 2012-06-08

    寻找一个页面定义格式和用于描述MySQL的SQL语句语法句法; 这意味着有是用来描述MySQL的SQL语法语句的符号体系,我在寻找,定义了如何读取这种格式的来源. 问题,反馈,评论 - 只是评论,谢谢! --------------解决方案------------- 您是否在寻找这个页面? http://dev.mysql.com/doc/refman/5.5/en/manual-conventions.html 我不知道是否有这些定义单独的页面. 然而,简短解释: {VALUE2 | VALU

  • 进口大MySQL的.SQL在Windows文件,力 2012-06-22

    我想导入Windows 7机器上的350MB MySQL的.sql文件. 我通常用做 mysql -uuser -p -e "source c:/path/to/file.sql" database 因为<不PowerShell的工作. 我的.sql文件中有这一次的错误. 我宁愿只跳过坏行并继续导入. 我怎样才能迫使进口继续在Windows? 在Unix / Linux操作系统为基础的系统,我可以用 mysql --force ... < file.sql 但--force

  • 如何导入MySQL的SQL文件导入Microsoft Visio 2007的? 2012-08-16

    有谁知道如何导入MySQL的SQL文件导入Microsoft Visio 2007中,然后自动生成数据库表? 多谢. --------------解决方案------------- 我已经解决了它. 我只是在MySQL和SQL文件创建数据库,然后我用逆向工程来构建一个Visio图表. 链接将是有用. 这里 谢谢.

  • SQL Server的VS MySQL的 - SQL注入漏洞的经典ASP 2012-08-22

    最近我们的客户的网站之一下跌猎物到SQL注入攻击,由于未能提供消毒的网页查询字符串参数. 该漏洞的代码已经被确定并正在纠正,但它让我想知道一些如何MySQL和SQL Server进程的多查询字符串之间的差异. 该漏洞的代码被用于几十个网站,其中两个是在SQL服务器上运行,而其余的是在MySQL. 有了这个代码,我们以前从来没有遭受注入攻击(神的恩典),但是一旦我们发布了SQL Server上运行的两个网站(使用相同的代码库)的网站很快就被利用. 注射的方法很简单: page.asp?param=

  • OLEDB VS ODBC:没有他们中的一个不要求安装驱动程序所有Oracle,MySQL和SQL服务器? 2013-04-29

    我想我的应用程序能够与多个数据库供应商合作. 换句话说,根据客户的数据库基础架构,该数据库架构将被部署在Oracle,MySQL和SQL Server的一个. 我使用ODBC和OLEDB,以及必须考虑的选择以下关键要求之间: DB模式必须从应用程序中创建(有人告诉我,ODBC可能存在问题在这种情况下,这是真的吗?) 我们强烈希望安装任何额外的软件(即Oracle即时客户端等)的最终用户不是必需的. 因此,驾驶员应最好之一: 已经捆绑到Windows中. Windows能否有ODBC / OLED

  • 如何使的MS Access打勾或复选框工作,MySQL和SQL 2013-08-18

    我使用的MS Access 2007作为前端应用程序,它通过ODBC与MySQL的链接. 问题是,访问的形式解释tickbox为-1为TRUE,而MySQL的/ SQL 1解释为TRUE. 所以打勾或复选框没有为TRUE状态获取表单. 如果我写的背后(前更新事件),那么单一的形式应该与UBOUND控制(未链接到数据字段)的工作,但对所谓的"连续的形式"上的代码,当控件是未绑定它会改变其勾选不只是在该记录/行,但是,所有的行时的状态. 除非我可以告诉访问的形式来改变标记框真/假的解释我不

  • 从创建MySQL的.sql文件,数据库架构图 2013-11-03

    有没有通过导入MySQL的.SQL数据库schema文件创建架构图中的任何数据库模式生成工具. --------------解决方案------------- 我相信,MySQL的工作台是你在找什么. 我没有做我自己,但它的SQL文件的支持进口. 你还可以指向现有的数据库放到工作台上并以图形方式创建一个模式,做什么都改变你喜欢. 然后,你可以将一组新的变化导出到不同的SQL是这样,你可以很容易地升级生产数据库.

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.320 (s). 10 q(s)