Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос для топ 10, с одновременной сортировкой по категории 
:(
    Опции темы
ST_Falcon
Дата 29.11.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



вот не выходит и все smile

есть две таблицы

user posted image

хочу вывести на главной странице лучшие картинки с каждой категории отсортированные по названию категории...

пробую так

Код

SELECT `img_id`, a1.cat_id, a2.cat_$lang
FROM `img` as a1, `categories` as a2
WHERE a1.cat_id = a2.cat_id GROUP BY a1.cat_id
ORDER BY a2.cat_$lang, a1.img_rank DESC, a1.img_id
 

по одной картинке получаю... но вот не той у которой самый высокий рейтинг, а той у который самый мелкий id!

Это сообщение отредактировал(а) ST_Falcon - 29.11.2006, 18:00
PM MAIL ICQ   Вверх
Rodman
Дата 29.11.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Код

SELECT `img_id`, a1.cat_id, a2.cat_$lang
FROM `img` as a1, `categories` as a2
WHERE a1.cat_id = a2.cat_id GROUP BY a1.cat_id
ORDER BY a1.img_rank DESC
LIMIT 10;


я не уверен, но что у тебя за рейтинг отвечает?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ST_Falcon
Дата 29.11.2006, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Rodman, img_rank

rank_count - количество голосов
rank_sum - общий бал

а img_rank = rank_sum / rank_count
просто подумал что лучше сортировать по отдельному полю чем по (rank_sum / rank_count)

Это сообщение отредактировал(а) ST_Falcon - 29.11.2006, 18:09
PM MAIL ICQ   Вверх
Vaulter
Дата 29.11.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Код

select img_id,full_path
from categories ct 
LEFT JOIN img USING(cat_id)
GROUP BY ct.cat_id
ORDER BY img_rank DESC

проверь
но запрос в лоб


--------------------
PM MAIL WWW ICQ   Вверх
ST_Falcon
Дата 29.11.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



мой выдает
Цитата

+--------+--------+---------+
| img_id | cat_id | cat_en  |
+--------+--------+---------+
|   3398 |      3 | animals |
|   1421 |      1 | anime   |
|    743 |      4 | auto    |
|   1057 |      8 | design  |
|      1 |      2 | games   |
|   2108 |      7 | girls   |
|   3776 |      6 | movies  |
|   2648 |      5 | nature  |
+--------+--------+---------+


и твой (переделанный немного)
Код

select img_id, ct.cat_id, cat_en
from categories ct 
LEFT JOIN img USING(cat_id)
GROUP BY ct.cat_id
ORDER BY ct.cat_en, img_rank DESC

Цитата

+--------+--------+---------+
| img_id | cat_id | cat_en  |
+--------+--------+---------+
|   3398 |      3 | animals |
|   1421 |      1 | anime   |
|    743 |      4 | auto    |
|   1057 |      8 | design  |
|      1 |      2 | games   |
|   2108 |      7 | girls   |
|   3776 |      6 | movies  |
|   2648 |      5 | nature  |
+--------+--------+---------+




smile хотя в games (например) у картинки с img_id 2 img_rank больше остальных...
PM MAIL ICQ   Вверх
Rodman
Дата 29.11.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Код

SELECT categories.cat_ua, categories.cat_ru, categories.cat_en, img.img_rank
FROM categories INNER JOIN img ON categories.cat_id = img.cat_id
ORDER BY img.img_rank DESC;


Добавлено @ 18:50 
Код

SELECT categories.cat_ua, categories.cat_ru, categories.cat_en, img.img_rank
FROM categories INNER JOIN img ON categories.cat_id = img.cat_id
ORDER BY img.img_rank DESC
LIMIT 0, 10;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
ST_Falcon
Дата 29.11.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Rodman, переделал вот так
Код

SELECT categories.cat_en, categories.cat_id, img.img_rank, img.img_id
FROM categories INNER JOIN img ON categories.cat_id = img.cat_id
ORDER BY img.cat_id, img.img_rank DESC;


выдача вот такая

Цитата

anime  1  5  1426
anime  1  0  1421
anime  1  0  1422
anime  1  0  1423
anime  1  0  1424
anime  1  0  1425
anime  1  0  1427
anime  1  0  1428
anime  1  0  1429


если добавить GROUP BY

Код

SELECT categories.cat_en, categories.cat_id, img.img_rank, img.img_id
FROM categories INNER JOIN img ON categories.cat_id = img.cat_id GROUP BY img.cat_id
ORDER BY img.cat_id, img.img_rank DESC;


Цитата

anime    1    0    1421
games  2  0  1
animals  3  0  3512
auto  4  0  743
nature  5  0  2648
movies  6  0  3878
girls  7  5  2108
design  8  0  1057


тоесть опять не то... получается затык в GROUP BY. а как еще можно одним запросом выбрать уникальные cat_id?
PM MAIL ICQ   Вверх
Rodman
Дата 29.11.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ну а 
Код

SELECT categories.cat_en, categories.cat_id, img.img_rank, img.img_id
FROM categories INNER JOIN img ON categories.cat_id = img.cat_id GROUP BY img.cat_id
ORDER BY img.img_rank;


не то???

Добавлено @ 19:12 
че выдает?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ST_Falcon
Дата 29.11.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Rodman,  нет... он выдает просто id первой картинки в категории smile
Цитата

games    2    0    1
animals  3  0  3398
auto  4  0  743
nature  5  0  2648
movies  6  0  3776
design  8  0  1057
anime  1  0  1421
girls  7  5  2108


например в girls я просто за первую голосовал... а в аниме вместо 1426 с рангом 5, идет 1421 с нулевым рангом...

PM MAIL ICQ   Вверх
Rodman
Дата 29.11.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ST_Falcon, проверь данные и ...
Код

SELECT img.img_rank, img.img_id
FROM categories INNER JOIN img ON categories.cat_id = img.cat_id 
GROUP BY img.cat_id
ORDER BY img.img_rank DESC;


я уже не знаю че там...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ST_Falcon
Дата 29.11.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Rodman, 

не... это изза GROUP BY... сейчас пробую через MAX сделать.
Цитата

games    2    0    1
animals  3  0  3398
auto  4  0  743
nature  5  0  2648
movies  6  0  3776
design  8  0  1057
anime  1  0  1421
girls  7  5  2108


кому интересно найти решение задачи кинул дамп - сюда

Это сообщение отредактировал(а) ST_Falcon - 29.11.2006, 19:34
PM MAIL ICQ   Вверх
Rodman
Дата 29.11.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ST_Falcon, в последнем моем запросе два поля... только код и рейтинг
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ST_Falcon
Дата 29.11.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Rodman, я расширяю чтоб было видно категорию...

Цитата

    5    2108
    0  1
    0  3398
    0  743
    0  2648
    0  3776
    0  1057
    0  1421

PM MAIL ICQ   Вверх
Rodman
Дата 29.11.2006, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



а выведи вместо rank - rank_sum, rank_count
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ST_Falcon
Дата 29.11.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Rodman, можешь дамп скачать http://fbn.com.ua/wallpaper.zip
так удобнее будет smile
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.