0

我有一张这样的桌子

在此处输入图像描述

现在我的要求如下: -

我必须获取与用户 ID-31 相关的所有内容 ID。这里匹配的内容 id 是 225,178。我能够找回这个。现在我想做以下事情: -

我想按递减顺序获取其内容 ID 与 31 的内容 ID 匹配的所有用户 ID。这意味着如果所有内容 id 都匹配,那么它将首先出现,否则它将最后出现。这里用户 ID 20 匹配 2 次,用户 ID 19 匹配 1,用户 ID 1 也匹配 1 次。所以结果集将是用户 ID 20,19,1。现在我想在 Mysql 以及 Drupal 7 中的 db_select 中实现这一点

4

1 回答 1

1

试试这个查询:

SELECT userid 
FROM tab
WHERE contentid IN (
     SELECT contentid FROM tab
     WHERE userid= 31
   )
   AND userid <> 31
GROUP BY userid
ORDER BY count(*) DESC;

演示 --> http://www.sqlfiddle.com/#!2/df190/5

于 2013-09-26T22:40:55.647 回答