0

Drupal + phpBB からのコメント + 投稿が最も多いユーザーのリストを取得する必要があります。

私はmySQLを使用しています。

Drupal データベースの構造: dr_comments(cid,uid) dr_users(uid,name)

phpBB: phpbb_posts(post_id,poster_id) phpbb_users(user_id,username)

Drupal と phpBB からのほとんどのコメントが一緒ではないユーザー向けの SQL コードがあります。

ドルパル:

SELECT
 U.name,
 COUNT(C.cid) AS CommentCount
FROM
 dr_users AS U
 INNER JOIN dr_comments AS C ON U.uid = C.uid
GROUP BY
 U.name
ORDER BY
 COUNT(C.cid) DESC

LIMIT 10

phpBB:

SELECT
 U.username,
 COUNT(C.post_id) AS CommentCount
FROM
 phpbb_users AS U
 INNER JOIN phpbb_posts AS C ON U.user_id = C.poster_id
GROUP BY
 U.username
ORDER BY
 COUNT(C.post_id) DESC

LIMIT 10

私はそれを一緒にマージする方法がわかりません。

4

2 に答える 2

0

UNIONを使用できます:

SELECT name, SUM(CommentCount) AS TotalCommentCount
FROM (
  SELECT U.name, COUNT(C.cid) AS CommentCount
  FROM dr_users AS U
  INNER JOIN dr_comments AS C ON U.uid = C.uid
  GROUP BY U.name

  UNION ALL

  SELECT U2.username AS name, COUNT(C2.post_id) AS CommentCount
  FROM phpbb_users AS U2
  INNER JOIN phpbb_posts AS C2 ON U2.user_id = C2.poster_id
  GROUP BY U2.username

) temp GROUP BY name

それはその仕事をするべきです。上記のスクリプトについては、ユーザー名が両方のプログラムで同じであることを期待しています。

このSQL Fiddleも確認できます。

于 2013-07-20T18:15:31.920 に答える