|
|
|
Как упростить запрос?
|
|||
|---|---|---|---|
|
#18+
Добрый день, имеется следующая структура из 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. После EXPLAIN: tabletypepossible_keyskeykey_lenrefrowsExtra fields_objectsALLNULLNULLNULLNULL12072Using temporary;Using filesortobjectseq_refPRIMARYPRIMARY4fields_objects.objects1 counter_objectsALLNULLNULLNULLNULL13404Using where fields_listeq_refPRIMARYPRIMARY4fields_objects.fields_list1Using where Очевидно, что такой подход неприемлем. Subquery в рабочей версии MySQL не поддерживаются. Как следует поступить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 15:14 |
|
||
|
Как упростить запрос?
|
|||
|---|---|---|---|
|
#18+
Решил данную проблему средствами ЯП, разбив запрос на два. Работает очень шустро, но возникает вопрос - нормально ли передавать запросу в качестве множества строку состоящую из пары тысяч id'шек? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 15:54 |
|
||
|
Как упростить запрос?
|
|||
|---|---|---|---|
|
#18+
vecalion...Subquery в рабочей версии MySQL не поддерживаются...А что за версия MySQL? Вообще говоря, вложенные запросы поддерживаются с версии 4.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 16:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33142989&tid=1853896]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
190ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 462ms |

| 0 / 0 |
