|
Как наиболее оптимально вытащить данные из таблицы? | ☑ | ||
---|---|---|---|---|
0
Сияющий Асинхраль
02.06.23
✎
20:48
|
Задача, казалось бы, простенькая, но торможу... Смысл такой, имеем плоскую таблицу в три колонки: Поставщик, ИД (товара), Адрес (в интернете). Одному ИД могут соответствовать разные поставщики и разные Адреса. Надо сформировать таблицу в которую входило бы по одному значению каждого ИД товара, а колонки Поставщик и Адрес заполнены были бы, но только одним из правильных соответствий для данного ИД - полный набор соответствий не нужен. Вопрос: как это сделать оптимально? В таблице несколько сотен тысяч строк...
|
|||
1
Сияющий Асинхраль
02.06.23
✎
20:51
|
В идеале, даже Поставщик не нужен, лучше на выходе иметь один ИД и соответствующий ему ОДИН из доступных ему Адресов...
|
|||
2
Zamestas
02.06.23
✎
20:52
|
(0) А данные в базе 1С или нет?
|
|||
3
Сияющий Асинхраль
02.06.23
✎
20:54
|
(2) Да, это содержание регистра сведений...
|
|||
4
Сияющий Асинхраль
02.06.23
✎
20:56
|
Тупо я, конечно, сделать могу. Например, сделать Итог по ИД, и при переборе результатов брать по первой строке после итога по каждому ИД. Но эта метода мне не кажется нормальной...
|
|||
5
Zamestas
02.06.23
✎
21:00
|
(3) Какие требования к правильности: "одним из правильных соответствий для данного ИД"?
|
|||
6
Сияющий Асинхраль
02.06.23
✎
21:07
|
ИД - это ISBN книги. Поставщики, как я сказал, могут быть разные, и у разных поставщиков могут быть разные ссылки на обложку книги в интернете. Мне надо одну любую правильную ссылку по каждому ISBN, чтобы не отправлять своих пользователей по десяти разным сайтам для каждой книге. Т.е. мне надо каждому ISBN указать единственный адрес в интернете, где пользователь сможет посмотреть обложку, а уж какой это будет сайт без разницы, главное, чтобы конкретной книге ставилась в соответствие конкретная картинка...
|
|||
7
Михаил Козлов
02.06.23
✎
21:23
|
Создайте соответствие. В цикле по строкам таблицы загоните в него разные ИД и какой- нибудь из адресов.
|
|||
8
Сияющий Асинхраль
02.06.23
✎
21:25
|
(7) С циклом вопросов нет. В цикле все делается на раз. Просто жутко интересно, можно ли подобное сотворить запросом. Вот этого не придумал...
|
|||
9
Михаил Козлов
02.06.23
✎
21:26
|
Думаю, что можно: сгруппировать по ИД. Это мода такая, все запросами делать?
|
|||
10
Шурик71
02.06.23
✎
22:02
|
А в чем сложность то???
Выбрать рег.Ид, Максимум(рег.Адрес) Поместить вт Из РегистрСведений.ХХХХХ как рег Сгруппировать по рег.Ид ; Выбрать вт.Ид, вт.Адрес, рег.Поставщик Из вт Левое соединение РегистрСведений.ХХХХХ как рег По вт.Ид = рег.Ид и вт.Адрес = рег.Адрес И при необходимости в запрос, формирующий вт - добавить еще "Индексировать по Ид, Адрес" , но эффективность индекса проще проверить опытным путем.. |
|||
11
Сияющий Асинхраль
03.06.23
✎
18:40
|
(10) Да, спасибо!!! Тоже догадался уже. Редко использую Максимум, но тут реально очень помог.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |