Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.10.2019, 20:03
|
|||
|---|---|---|---|
|
|||
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
Уважаемые знатоки! Помогите пожалуйста фронтендеру ) В базе данных хранится классификация продуктов. Сами признаки и возможные значения которые они могут принимать динамические, поэтому всё хранится в нескольких таблицах: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. А теперь я хочу собрать определённые классификации, чтобы получилась таблица вида: productName | classification1 | classification2 | ...... Умнее, чем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ничего не придумал. В принципе работает с приемлемой скоростью, но не оставляет чувство, что это дикий костыль. Подскажите пожалуйста, как сделать оптимальнее? Если суть задачи не понятна - поясню.. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.10.2019, 20:06
|
|||
|---|---|---|---|
|
|||
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
Вот top 1 без order by это даже не костыль, а еще хуже. А коррелированные подзапросы -- это вполне нормальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.10.2019, 20:09
|
|||
|---|---|---|---|
|
|||
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
Гавриленко Сергей Алексеевич, Оrder by есть конечно - забыл написать. Честно говоря, меня не вполне устраивает скорость.. может быть можно как-то быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.10.2019, 20:18
|
|||
|---|---|---|---|
|
|||
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
eonae, Наверняка можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.10.2019, 21:09
|
|||
|---|---|---|---|
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
eonaeможет быть можно как-то быстрее?Может и можно. Только по приведенным фрагментам кода очень трудно догадаться, что же вы хотите получить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.10.2019, 23:15
|
|||
|---|---|---|---|
|
|||
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
invm, Постараюсь пояснить: В таблице Classifications хранятся признаки, которые могут быть у продукта. Пример признака: "Тип" или "Горячее" Код: sql 1. 2. 3. В таблице ClassificationOptions хранятся возможные значения, которые могут принимать признаки: Код: sql 1. 2. 3. 4. 5. 6. В таблице ClassificationBindings хранятся привязки конкретных продуктов из таблицы Products (упрощённо id и name): Код: sql 1. 2. 3. 4. 5. Теперь я хочу запросить к каким категориям относятся мои продукты в таблице Products. Я могу сделать такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Получу в результате: ------------------------------------------------------- Продукт | Категория | Значение ------------------------------------------------------- Стейк | Тип | Еда Стейк | Прожарка | Средняя ------------------------------------------------------- Но хотел бы получить таблицу такого вида: --------------------------------------------------- Продукт | Тип | Прожарка --------------------------------------------------- Стейк Еда Средняя --------------------------------------------------- Хотя в таблице категорий количество категорий может меняться динамически, в выборке мне это не требуется. Я заранее знаю какие классификации мне нужно подтянуть в качестве столбцов. Один способ, как добиться выполнения моей задачи я уже указал выше. Если есть более оптимальный с точки зрения производительности, буду рад, если наведётся на мысль. Писать за меня не обязательно ) С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.10.2019, 23:23
|
|||
|---|---|---|---|
Оптимизация выборки. Можно ли чем-то заменить подзапросы? |
|||
|
#18+
eonae, См. pivot ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1687062]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
136ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 492ms |

| 0 / 0 |
