![]() |
Помогите составить запрос
Вобщем, задача такая - вывести рейтинг песен, за которые голосовали пользователи.
1. Есть таблица с песнями 2. Есть таблица с голосами, в которой след поля: голос (от -2 до +2 за песню), id пользователя, id песни, дата голосования. Задача - отсортировать песни по сумме голосов в таблице номер 2. Сам понимаю, что ничего сложного, но вся загвоздка в том, что один пользователь может проголосовать несколько раз за одну и туже песню. А вывести нужно голоса за неделю... Заранее спасибо. |
язык какой ? flash?
|
Цитата:
Цитата:
Цитата:
|
Хм, выборка идет из разных таблиц, как их правильно объединить в запросе?
|
FROM `voite_table` LEFT JOIN `song_table` ON (`song_table`.`id` = `voite_table`.`song_id`)
|
Спасибо, щас буду пробовать. Если что - отпишусь.
|
Вот этот запрос:
$query = "SELECT * FROM songs LEFT JOIN golos ON (golos.song_id = songs.id)"; выбирает все песни, за которые проголосовали, причем, если голосовали несколько раз, он выбирает несколько раз. Пробовал отсортировать вот так: $query = "SELECT * FROM songs LEFT JOIN golos ON (golos.song_id = songs.id) ORDER BY SUM(golos.golos)"; ...выдает ошибку. Как избежать вывода нескольких песен и сделать сортировку? |
Все, лекарство нашел:
$query="SELECT songs.song, songs.id, SUM(golos.golos) AS golosa FROM songs LEFT OUTER JOIN golos ON golos.song_id = songs.id GROUP BY songs.song ORDER BY golosa DESC"; |
| Часовой пояс GMT +4, время: 02:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.