SELECT name, count( topicId ) AS total, userName
FROM topic
LEFT JOIN
restore ON topic.id = topicId
INNER JOIN user ON userId = user.id
GROUP BY name, topicId, userName
SELECT a.`publicDiscussTopicTitle` , b.total, c.userName
FROM `dszg_publicdiscusstopic` a
INNER JOIN (
SELECT topicId, count( * ) AS total
FROM `dszg_publicdiscusscon`
GROUP BY `dszg_publicdiscusscon`.`topicId`
)b ON a.`publicDiscussTopicId` = b.topicId
LEFT JOIN `dszg_user` c ON a.userId = c.userId