我试图通过子查询来计算与每个书签相关的标签和评论的数量。但是,它只是计算所有标签和评论。COUNT(*)在子查询中返回每一行,而不仅仅是那些特定的ID
SELECT
bookmarks.bookmark_id,
bookmarks.user_id,
DATE_FORMAT(bookmarks.creation, '%W %D of %M %Y, %H:%i') AS creation,
DATE_FORMAT(bookmarks.modification, '%W %D of %M %Y, %H:%i') AS modification,
bookmarks.url,
bookmarks.title,
bookmarks.snippet,
bookmarks.status,
(
SELECT
COUNT(tags.tag) AS tags
FROM
tags
INNER JOIN
bookmarks
ON
(tags.bookmark_id = bookmarks.bookmark_id)
WHERE
(tags.user_id = '1')
) AS tags,
(
SELECT
COUNT(bookmarks_comments.comment) AS comments
FROM
bookmarks_comments
INNER JOIN
bookmarks
ON
(bookmarks_comments.bookmark_id = bookmarks.bookmark_id)
WHERE
(bookmarks_comments.user_id = '1')
) AS comments
FROM
bookmarks
WHERE
(bookmarks.user_id = '1')
GROUP BY bookmarks.bookmark_id
也许是时间的晚了。我不知道。但我无法弄清楚。有任何想法吗?
请停止使用'GROUP BY'这种方式。这不是标准的,从长远来看会伤害你。 – Kermit 2013-04-26 21:53:04
请看这里:http://rpbouman.blogspot.de/2007/05/debunking-group-by-myths.html – 2013-04-27 15:17:47