MySQL - «Самый социальный пользователь» с наибольшим количеством комментариев в нескольких таблицах - PullRequest
2 голосов
/ 11 мая 2011

У меня есть 2 таблицы беспокойства - «videoComments», «storyComments».

Мне нужно найти «posterID», в котором больше всего записей в videoComments и storyComments.Вот код, который у меня есть, но он вызывает только videoComments:

$sql = "SELECT (SELECT posterID 
                  FROM videoComments 
              GROUP BY posterID 
              ORDER BY COUNT(posterID) DESC LIMIT 1) ) AS mostSocialUser ";

Как мне вытащить его и сравнить COUNT posterID из обеих таблиц?

Ответы [ 2 ]

0 голосов
/ 11 мая 2011

Использование:

   SELECT x.posterid,
          COUNT(y.posterid) + COUNT(z.posterid) AS numComments
     FROM (SELECT vc.posterid
             FROM VIDEOCOMMENTS vc
           UNION 
           SELECT sc.posterid
             FROM STORYCOMMENTS sc) x
LEFT JOIN VIDEOCOMMENTS y ON y.posterid = x.posterid
LEFT JOIN STORYCOMMENTS z ON z.posterid = x.posterid
 GROUP BY x.posterid
 ORDER BY numComments DESC
    LIMIT 1
0 голосов
/ 11 мая 2011

Попробуйте это:

SELECT (
    SELECT posterID FROM (
        SELECT posterID FROM videoComments 
        UNION 
        SELECT posterID FROM storyComments
    ) GROUP BY posterID 
      ORDER BY COUNT(posterID) DESC LIMIT 1
) AS mostSocialUser
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...