さて、私は2つのテーブルを持っています:
images votes
---------------------------- --------------------
image_id | name | square_id vote_id | image_id
---------------------------- --------------------
1 someImg 14 1 45
2 newImg 3 2 18
3 blandImg 76 3 1
... ...
n n
これは 1 対多の関係です。各画像は複数の投票を持つことができますが、投票は 1 つの画像にのみ関連付けることができます。イメージ ID と、指定された条件 (たとえば、に基づくsquare_id
) での投票数を表示する結合クエリを作成しようとしています。したがって、クエリの結果は次のようになります。
query_result
----------------------
image_id | vote_count
----------------------
18 46
26 32
20 18
...
55 1
しかし、私ができる最善のことはこれです:
query_result
----------------------
image_id | vote_id
----------------------
18 46
18 45
18 127
26 66
26 43
55 1
問題が見えますか?それぞれimage_id
が複数回リストされてvote_id
います。これは、これを生成するクエリです。
SELECT images.image_id, votes.vote_id
FROM votes JOIN images ON images.image_id=votes.image_id
vote_count
画像が持っているすべての投票の合計である列を作成できないようです。count()
関数を使用してそうすることができる方法はありますか?