Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.11.2006, 18:13
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 1  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
По умолчанию Помогите составить запрос

Вобщем, задача такая - вывести рейтинг песен, за которые голосовали пользователи.
1. Есть таблица с песнями
2. Есть таблица с голосами, в которой след поля: голос (от -2 до +2 за песню), id пользователя, id песни, дата голосования.

Задача - отсортировать песни по сумме голосов в таблице номер 2. Сам понимаю, что ничего сложного, но вся загвоздка в том, что один пользователь может проголосовать несколько раз за одну и туже песню. А вывести нужно голоса за неделю...
Заранее спасибо.

Старый 30.11.2006, 18:47
Ekzi вне форума Посмотреть профиль Отправить личное сообщение для Ekzi Посетить домашнюю страницу Ekzi Найти все сообщения от Ekzi
  № 2  
Ответить с цитированием
Ekzi
 
Аватар для Ekzi

Регистрация: Jan 2006
Адрес: ННовгород
Сообщений: 1,242
Отправить сообщение для Ekzi с помощью ICQ Отправить сообщение для Ekzi с помощью Skype™
язык какой ? flash?
__________________
Flash ещё не торт...

Старый 30.11.2006, 19:11
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 3  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Цитата:
Сообщение от Golovach
Задача - отсортировать песни по сумме голосов в таблице номер 2.
ORDER BY SUM(`voite`) ASC | DESC

Цитата:
Сообщение от Golovach
Сам понимаю, что ничего сложного, но вся загвоздка в том, что один пользователь может проголосовать несколько раз за одну и туже песню.
И что ? Точнее, считать надо все голоса, или от одного юзера - один голос, если один голос, то какой именно ?

Цитата:
Сообщение от Golovach
А вывести нужно голоса за неделю...
WHERE `voite_date` < "2006-11-30 00:00:00" AND `voite_date` > "2006-11-23 00:00:00"
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 01.12.2006, 12:05
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 4  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
Хм, выборка идет из разных таблиц, как их правильно объединить в запросе?

Старый 01.12.2006, 12:41
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 5  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
FROM `voite_table` LEFT JOIN `song_table` ON (`song_table`.`id` = `voite_table`.`song_id`)
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 01.12.2006, 12:49
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 6  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
Спасибо, щас буду пробовать. Если что - отпишусь.

Старый 02.12.2006, 12:57
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 7  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
Вот этот запрос:

$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)";

...выдает ошибку.
Как избежать вывода нескольких песен и сделать сортировку?

Старый 02.12.2006, 13:38
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 8  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
Все, лекарство нашел:
$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, время: 18:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.