参加しようとしているテーブルが 3 つあります。
pictures
--------
id user_id link
users
-----
id name
votes
-----
id user_id picture_id
私がやりたいのは、ログインしている特定のユーザーのすべての写真の合計投票数を見つけることです。ほぼすべての写真をループアウトし、ユーザーが写真に投票した場合、再度投票することはできません。
Desired output:
---------------
id user_id link user_name total_votes
1 5 [link] Sean 5
これまでのところ、次のようなものがあります。
SELECT
p.*, u.username, d.total_votes
FROM pictures p
LEFT JOIN users u
ON p.user_id = u.id
LEFT JOIN
(
select id, picture_id, count(id) as has_voted from votes
) d on d.picture_id = p.id
私はすべての写真を手に入れましたが、すべての投票は最初のレコードに追加されています。
編集
わかりづらくてすみません
これが私のデータベース内のすべての画像です。Sean (user_id 1) としてログインしているとします。各画像に投票した回数を表示したいとします。
user_id は画像をアップロードした人です。