![]() |
|
Модераторы: skyboy |
![]()
|
|
| Juggernaut |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 4.12.2005 Репутация: нет Всего: 2 |
Всем доброго времени суток.
Нужна помощь с ускорением работы запроса: Собственно таблицы: 1)shops -- справочник магазинов shop_id | shop_name | ...... 1 shop1 2 shop2 3 shop3 2) global_goods -- глобальный список товаров global_id | good_name | ...... 1 good1 2 good2 3 good3 3) local_goods -- список с локальными наименованиями товара в каждом магазине global_id | local_good_id | shop_id 1 'x1' 1 2 'b2' 2 3 'v3' 1 1 'v4' 2 3 'r5' 2 3 'h6' 3 Необходимо сделать выборку отражающую соответствия локальных идентификаторов по магазинам для каждого глобального идентификатора, например global_id | 'in_shop1' | 'in_shop2' | 'in_shop3' 1 'x1' 'v4' null 2 null 'b2' null 3 'v3' 'r5' 'h6' Собственно я делаю так:
Есть два вопроса: 1) Как можно преобразовать запрос, для ускорения его работы? Магазинов около 10, глобальных товаров около 10000, поэтому запрос выполняется очень медленно. 2) Есть ли возможность не "хардкодить" магазины в запросе. Т.е. можно ли как-нибудь записи одной таблицы(магазинов) сделать колонками конечной выборки "на автомате". В принципе магазины добавляются редко, можно и переделать запрос, но как-то "не камильфо". |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Если СУБД поддерживает перекрёстные запросы - использовать. А нет - значит нет...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
только аналог decode для mysql не знаю( |
|||
|
||||
| Juggernaut |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 4.12.2005 Репутация: нет Всего: 2 |
В mysql это называется if().
Получилось вот так:
Самое смешное что, используется всего одна таблица. Перефразируя старый афоризм: "Все люди делятся на тех, кто мыслит понятиями множеств и остальных". Kbl4AH - большое спасибо!! Тема закрыта. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |