【发布时间】:2014-09-20 01:45:10
【问题描述】:
我正在尝试为我的管理面板开发一项功能,该功能可以根据他们可能拥有的任何“标志”获取 cmets。我想从 cmets 表中获取结果,但只有在 flags 表中具有关联行的 cmets。然后,我想按 cmets 拥有的标志总数对结果进行排序。
这些是我的表结构:
CREATE TABLE IF NOT EXISTS `article_comments` (
`comment_id` int(15) NOT NULL AUTO_INCREMENT,
`author_id` int(15) NOT NULL,
`article_id` int(15) NOT NULL,
`modifier_id` int(15) NOT NULL,
`content` varchar(255) NOT NULL,
`date_posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`date_modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`comment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
CREATE TABLE IF NOT EXISTS `article_comment_flags` (
`flag_id` int(15) NOT NULL AUTO_INCREMENT,
`comment_id` int(15) NOT NULL,
`member_id` int(15) NOT NULL,
`date_flagged` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`flag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
这是我正在使用的当前查询:
SELECT
c.comment_id AS comment_id, c.article_id,
f.flag_id, f.comment_id, f.member_id, f.date_flagged, COUNT(f.flag_id) AS total_flags
FROM article_comments AS c
LEFT JOIN article_comment_flags AS f ON (c.comment_id = f.comment_id)
GROUP BY comment_id
ORDER BY total_flags DESC
LIMIT 5
这是我得到的当前 SQL 错误:
Column 'comment_id' in group statement is ambiguous
有人有什么想法吗?
【问题讨论】:
-
别名 -- 改用
group by c.comment_id...