powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как упростить запрос?
4 сообщений из 4, страница 1 из 1
Как упростить запрос?
    #33142989
vecalion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

имеется следующая структура из 4 таблиц:
[counter_objects] M -- 1 [objects] 1 -- M [fields_objects] M -- 1 [fields_list]

То есть, есть основная таблица объектов. У каждого объекта неограниченное число категорий (М-М с таблице fields_list). Для каждого объекта в таблице counter_objects по дням хранятся некоторые числа. Необходимо выбрать сумму этих чисел для всех объектов заданной категории. Получился следующий запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT SUM(hitcount) AS sum,
                       objects.id AS id, objects.title_eng AS title
FROM objects
INNER JOIN counter_objects ON objects.id = counter_objects.id_objects
INNER JOIN fields_objects ON fields_objects.objects = objects.id
INNER JOIN fields_list ON fields_objects.fields_list = fields_list.id
WHERE fields_list.parent =  15 
GROUP BY objects.id
ORDER BY sum DESC
LIMIT  50 

После EXPLAIN:
tabletypepossible_keyskeykey_lenrefrowsExtra fields_objectsALLNULLNULLNULLNULL12072Using temporary;Using filesortobjectseq_refPRIMARYPRIMARY4fields_objects.objects1 counter_objectsALLNULLNULLNULLNULL13404Using where fields_listeq_refPRIMARYPRIMARY4fields_objects.fields_list1Using where

Очевидно, что такой подход неприемлем. Subquery в рабочей версии MySQL не поддерживаются. Как следует поступить?
...
Рейтинг: 0 / 0
Как упростить запрос?
    #33143143
vecalion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил данную проблему средствами ЯП, разбив запрос на два. Работает очень шустро, но возникает вопрос - нормально ли передавать запросу в качестве множества строку состоящую из пары тысяч id'шек? :)
...
Рейтинг: 0 / 0
Как упростить запрос?
    #33143205
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vecalion...Subquery в рабочей версии MySQL не поддерживаются...А что за версия MySQL? Вообще говоря, вложенные запросы поддерживаются с версии 4.1.
...
Рейтинг: 0 / 0
Как упростить запрос?
    #33143221
vecalion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BerkutА что за версия MySQL? Вообще говоря, вложенные запросы поддерживаются с версии 4.1.
MySQL 4.0.17
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как упростить запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]