Мне нужна помощь в отображении одного случайного результата, за который текущий пользователь не проголосовал.
В настоящее время моя настройка базы данных и последний запрос, который я пробовал, можно найти наhttp://sqlfiddle.com/#!2/2f91b/1
По сути, я могу изолировать каждый отдельный элемент, используя этот запрос:
SELECT a.img_url, a.item_id, a.user_id, a.img_status, b.item_question, c.user_name, c.user_fbid, d.voter_id, count(d.img_id) AS totalVotes
FROM os_photos a
LEFT JOIN os_items b ON a.item_id = b.item_id
LEFT JOIN os_users c ON a.user_id = c.user_id
LEFT JOIN os_votes d ON a.img_id = d.img_id
GROUP BY a.img_id
ORDER BY RAND()
LIMIT 1
Моя проблема :Со знанием SQL, которое у меня есть, я не могу изолировать результаты, чтобы показать только строки, в которых пользователь #2 не проголосовал. Я понимаю, что проблема заключается в том, что когда я использую группу, она объединяет идентификатор избирателя _, и поэтому я не могу проверить, ввел ли пользователь #2 какой-либо ввод для элемента.
Пример:
Item # | voter_id
1 | 2
1 | 3
2 | 2
3 | 1
3 | 4
4 | 3
4 | 1
5 | 1
5 | 2
С приведенным выше набором выборок результирующий элемент должен быть либо пунктом #3, #4, либо любым другим пунктом, по которому не было проведено голосование.
Ваша помощь, советы и знания очень ценятся.