SQL JOIN失败 - 不是唯一的表/别名

时间:2014-07-18 07:27:37

标签: mysql sql smf-forum

SELECT `member_name.smf_members`, COUNT(`author.smf_links`) 
FROM smf_members, smf_links
JOIN smf_links ON id_member.smf_members = author.smf_links;
GROUP BY `author.smf_links`

它说smf_links不是唯一的表/别名。我想做的就是让它计算出同一作者有多少行,并显示成员名而不是作者(这是一个数字)和计数。

所以代替: 1 | 23

它会显示: 兔子| 23

我无法解决这个问题,而且我的大脑因谷歌搜索而麻木了。有人可以帮帮我吗? :)

1 个答案:

答案 0 :(得分:4)

您收到的错误是因为您要使用同一个表smf_links加入两次。如果这是你真正想做的事情,你需要给它们别名,这样你才能区分它们。但我怀疑你错误地这样做了。

此外,语法为tablename.column,而不是column.table。你必须分别在每个部分周围放置反引号;如果.在反引号中,则将其视为文字字符,而不是分隔符。

SELECT `smf_members`.`member_name`, COUNT(*)
FROM smf_members
JOIN smf_links ON smf_members.id_member = smf_links.author
GROUP BY smf_links.author