我有这些表格:
评论
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条评论。
查询中是否有问题?
答案 0 :(得分:2)
问题是用户乘以他的页数,然后乘以他的评论数。解决这个问题的一种方法是count(distinct ..)
:
count(distinct p.id) as 'pages',
count(distinct c.id) as 'comments'