0

まず、私がフォローしている基本的な構造についてお話したいと思います。次のような構造を持つ 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' 付近で使用する正しい構文を確認してください。

4

1 に答える 1

1

COUNT(td_idea_contribution_like.*)ここで問題ですか

*ここで複数の列を指定したことを意味します。

于 2013-05-24T06:09:26.737 に答える