|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Добрый день! Прошу помочь, не могу найти адекватное решение для моей задачи. Есть таблица со столбцами id, product_id, name, order, это список фотографий товаров. В столбце product_id указан id товара( может быть максимум 8 фотографий на товар), name - название картинки, order - очередь показа фотографии(1, 2, 3...8) Мне необходимо получить таблицу вида product_id, name_1, name_2.... name_8, где в product_id - id товара, а в следующих 8 столбцах - названия картинок по порядку, указаному в столбце order(в целом, можно просто список без сортировки по order, если это усложняет задачу). Пример таблицы: id product_id name order 43442 1 pc211ev.png 3 32728 1 Pantum_PC-211EV.jpg 1 32729 1 Pantum_PC-211_EV.jpeg 2 32761 2 Pantum_PC-211RB.jpg 1 26459 3 _______________________-4004.jpg 1 33687 4 DEFENDER_ES_1.8m.jpg 1 25942 5 Moulinex_AT718A10.jpg 1 31527 6 LENOVO_110-15__80T7003MRK_.jpg 1 31528 6 LENOVO_110-15__80T7003MRK_-1.jpg 2 32929 7 Defender_Princeton_C-935.jpg 1 32930 7 Defender_Princeton_C-935-2.jpg 2 32931 7 Defender_Princeton_C-935-4.jpg 3 32932 7 Defender_Princeton_C-935-1.jpg 4 32944 8 DEFENDER_Berkeley_C-925.jpg 1 32945 8 DEFENDER_Berkeley_C-925-1.jpg 2 31709 9 Defender_Optimum_MB-150__52150_.jpg 1 31710 9 Defender_Optimum_MB-150__52150_-1.jpg 2 22582 10 INDESIT_SFR_167_NF.jpg 1 22583 10 INDESIT_SFR_167_NF.-1.jpg 2 Спасибо за любую помощь заранее ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 12:06 |
|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Spawned, А какие решения уже были и почему они неадекватные? Зачем это нужно? Если потом будет отображаться в GUI (товар и 8 фото в строчку), то пусть GUI этим и занимается. Что делать, если у товара всего одна фотография? А если потом их станет 15? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 12:49 |
|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Это pivot. Эмулировать только разве - в хранимке или условной агрегацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 12:58 |
|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Akina Это pivot. Эмулировать только разве - в хранимке или условной агрегацией. Можно и через ROW_NUMBER: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Но всё равно надо подумать на тему: а зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 13:17 |
|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Агрох Akina Это pivot. Эмулировать только разве - в хранимке или условной агрегацией. Можно и через ROW_NUMBER: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Но всё равно надо подумать на тему: а зачем? БД меняется, нужно выгрузить названия фотографий и попросили именно в таком формате. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 13:36 |
|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Агрох Можно и через ROW_NUMBER: А комбинация полей (product_id, order) делает использование ROW_NUMBER ненужным. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 19:11 |
|
Разбить фотографии по столбцам
|
|||
---|---|---|---|
#18+
Akina Это вообще-то и называется условной агрегацией. Давно это делал в MySQL. Разве там нет сппецсредств для разворота строк в поля, типа функции PIVOT()? По крайней мере я помню, что использовал такую. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 10:14 |
|
|
start [/forum/topic.php?fid=47&fpage=8&tid=1828061]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 189ms |
0 / 0 |