我进行了一些搜索,但没有找到与我要达到的目标完全相同的东西。
基本上,我试图找到两个用户的投票习惯之间的相似之处。
我有一张表格,其中存储了进行的每个个人投票,该表格存储:
voteID itemID (the item the vote is attached to) userID (the user who voted) direction (whether the user voted the post up, or down)
我的目的是通过找出两件事来计算用户A和B之间的相似度:
(然后只需将#2计算为#1的百分比,即可获得粗略的相似度等级)。
我的问题是, 如何找到两个用户的投票集之间的交集? (即我如何充分地计算第1点,而又不会以非常低效的方式遍历每张选票。)我想,如果它们在不同的表中,INNER JOIN就足够了……但这显然行不通在同一张桌子上(或者会吗?)。
任何想法将不胜感激。
像这样的东西:
SELECT COUNT(*) FROM votes v1 INNER JOIN votes v2 ON (v1.item_id = v2.item_id) WHERE v1.userID = 'userA' AND v2.userUD = 'userB'