SQL计算的行数比实际多一行

SQL计算的行数比实际多一行,sql,count,row,Sql,Count,Row,我有这些桌子: 评论 uid id pid pid user id rank . . . 页面 uid id pid pid user id rank . . . 用户 uid id pid pid user id rank . . . 此查询: SELECT u.*, count(p.id) as 'pages', count(c.id) as 'comments' FROM `users` u LEFT OUTER JOIN `pages

我有这些桌子:

评论

uid
id
pid
pid
user
id
rank
.
.
.
页面

uid
id
pid
pid
user
id
rank
.
.
.
用户

uid
id
pid
pid
user
id
rank
.
.
.
此查询:

SELECT
   u.*, 
   count(p.id) as 'pages',
   count(c.id) as 'comments' 
FROM 
  `users` u 
   LEFT OUTER JOIN `pages` p ON p.user = u.id
   LEFT OUTER JOIN `comments` c ON c.uid = u.id
GROUP BY u.id
出于某种原因,当用户只有1条评论时,它会为用户显示2条评论


查询中有问题吗?

问题是用户要乘以他的页数,然后乘以他的评论数。解决此问题的一种方法是
count(distinct..)


成功了!!非常感谢,当网站允许我的时候,我会接受你的回答。。你能再给我解释一下,用户的页数乘以他的页数吗?这意味着什么?第一个连接为每个页面检索一行。如果一个用户有两个页面,那就是两行。下一个连接将检索这两行中每一行的注释!因此,如果用户有3条注释,那么您将得到6行。