首先,我想介绍一下我所遵循的基本结构。假设我有一个名为 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 字符串显示错误。错误如下
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) AS td_idea_contribution_like.tot_like FROM' at line 1
最佳答案
COUNT(td_idea_contribution_like.*)
是这里的问题
*
表示您在此处指定了多个列。
关于mysql - 复合 MySQL 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16728618/