复合MySQL查询问题

时间:2013-05-24 06:07:39

标签: mysql

首先,我想谈谈我所遵循的基本结构。假设我有一个名为td_idea的表,其结构如下:

|-------------------------------------------------------------------|
| idea_id  |  idea_name   |  idea_submitter_id   |   idea_status    |
|----------|--------------|----------------------|------------------|

然后我有一个名为td_idea_contribution的表格,用于显示用户对特定想法的贡献:

|-------------------------------------------------|
| contribution_id  |  idea_id   |  submitter_id   |
|------------------|------------|-----------------|

最后是td_idea_contribution_like表:

|-------------------------------------------------|
| like_id  |  contribution_id   |  submitter_id   |
|----------|--------------------|-----------------|

我想根据特定的idea_id显示所有贡献, 列出的每个贡献也将显示该特定贡献的投票数。

以下是我尝试使用查询实现的目标:

$sql="SELECT td_idea.*,td_idea_contribution.*,COUNT(td_idea_contribution_like.*) AS tot_like 
                                      FROM td_idea,td_idea_contribution,td_idea_contribution_like
                                     WHERE td_idea.idea_id=td_idea_contribution.idea_id 
                                     AND td_idea_contribution.contribution_id=td_idea_contribution_like.contribution_id
                                     AND td_idea.idea_id='$id'
                                     AND td_idea_contribution.contribution_type='Design' ORDER BY tot_like DESC";

但SQL字符串显示错误。错误如下

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'*)附近使用正确的语法AS td_idea_contribution_like.tot_like FROM'在第1行

1 个答案:

答案 0 :(得分:1)

COUNT(td_idea_contribution_like.*)是这里的问题

*表示您在此处指定了多个列。