获取同一表中的公共行
我进行了一些搜索,但没有找到与我要达到的目标完全相同的东西。
基本上,我试图找到两个用户的投票习惯之间的相似之处。
我有一张表格,其中存储了进行的每个个人投票,该表格存储:
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就足够了……但这显然行不通在同一张桌子上(或者会吗?)。
任何想法将不胜感激。