まず、私がフォローしている基本的な構造についてお話したいと思います。次のような構造を持つ 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 サーバーのバージョンに対応するマニュアルで、1 行目の '*) AS td_idea_contribution_like.tot_like FROM' 付近で使用する正しい構文を確認してください。