我有一张这样的表
现在我的要求如下: -
我必须获取与用户ID-31相关的所有内容ID。这里匹配的内容id是225,178。我能够检索到这个。现在我想做以下事情: -
我想在减少顺序中获取Content ID与Content ID 31匹配的所有用户ID。这意味着如果所有内容id匹配,则它将首先出现,否则它将出现在最后。这里用户ID 20匹配2次,用户ID 19匹配1,用户ID 1也匹配1次。因此,结果集将是用户ID 20,19,1。现在我想在Mysql中实现这一点以及在Drupal 7中实现db_select
答案 0 :(得分: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;
演示 - &gt; http://www.sqlfiddle.com/#!2/df190/5