如何获得最大匹配输出

时间:2013-09-26 19:02:29

标签: mysql select drupal-7 relational-database

我有一张这样的表

enter image description here

现在我的要求如下: -

我必须获取与用户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

1 个答案:

答案 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