インポートしたデータのノードにコメント数を表示したい
よそのブログからDrupalにデータをインポートしたが、ノードが一覧で表示されるときにコメントの数が表示されない。
こんな風にコメント(数)を表示したい。
Views関連のnode_comment_statisticsというテーブルにコメント数のデータが格納されている。
nodeやcommentsが正しくデータ化されていれば、以下のクエリをMySQLで直接叩けばコメント数も表示されるようになる。
TRUNCATE TABLE node_comment_statistics; INSERT INTO node_comment_statistics ( nid, last_comment_timestamp, last_comment_name, last_comment_uid, comment_count ) SELECT n.nid, IFNULL(last_comment.timestamp,n.changed) AS last_comment_timestamp, IFNULL(last_comment.name,null) AS last_comment_name, IFNULL(last_comment.uid,n.uid) AS last_comment_uid, IFNULL(comment_count.comment_count,0) AS comment_count FROM node AS n LEFT OUTER JOIN (SELECT nid, COUNT(*) AS comment_count FROM comments WHERE status=0 GROUP BY nid) AS comment_count ON comment_count.nid=n.nid LEFT OUTER JOIN (SELECT nid, MAX(cid) AS max_cid FROM comments WHERE status=0 GROUP by nid) AS max_node_comment ON max_node_comment.nid=n.nid LEFT OUTER JOIN (SELECT cid,uid,name,timestamp FROM comments ORDER BY cid DESC LIMIT 1) AS last_comment ON last_comment.cid=max_node_comment.max_cid WHERE n.status=1 ORDER BY n.nid;
このサイトの情報を参考にした。
http://drupaleasy.com/blogs/ericmarden/2008/09/rebuild-your-node-comment-statistics-table