Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите составить запрос с выводом отсортированного списка возможных комбинаций
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые форумчане! Есть таблица вида: Москва - Тверь - 10000 Москва - Питер - 20000 Питер - Тверь - 5000 Саратов - Барнаул - 5000 и так далее. Количество записей более 1000, а количество городов более 300. Не могу составить запрос, который бы создавал выборку где присутствуют только введеные нами города, при этом выводилась бы только одна запись, самая низкая по третьему столбцу (цена). Например при запросе этой команды с городами Москва, Питер, мы бы получили только 2 записи: Москва - Питер - (самая низкая цена) Питер - Москва - (самая низкая цена) А при запросе четырех городов мы бы получали <16 записей (возможные комбинации), где опять же город А - город Б может иметь только одну запись. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 05:35 |
|
||
|
Помогите составить запрос с выводом отсортированного списка возможных комбинаций
|
|||
|---|---|---|---|
|
#18+
dmakeЕсть таблица вида:Как обеспечивается уникальность для пары городов? т.е. то, что для пары Город1-Город2 отсутствует ещё одна запись с той же парой городов (в том же или обратном порядке) с иной стоимостью? Если ответ "обеспечивается программно, на клиенте" - значит, не обеспечивается никак, и это надо учитывать при составлении запроса. В том числе и нет гарантии отсутствия записей, где Город1=Город2. dmakeНапример при запросе этой команды с городами Москва, Питер, мы бы получили только 2 записи: Москва - Питер - (самая низкая цена) Питер - Москва - (самая низкая цена) Откуда вторая запись? её нет в исходных данных. Решением может быть запрос типа Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 11:43 |
|
||
|
Помогите составить запрос с выводом отсортированного списка возможных комбинаций
|
|||
|---|---|---|---|
|
#18+
AkinadmakeЕсть таблица вида:Как обеспечивается уникальность для пары городов? т.е. то, что для пары Город1-Город2 отсутствует ещё одна запись с той же парой городов (в том же или обратном порядке) с иной стоимостью? Если ответ "обеспечивается программно, на клиенте" - значит, не обеспечивается никак, и это надо учитывать при составлении запроса. В том числе и нет гарантии отсутствия записей, где Город1=Город2. dmakeНапример при запросе этой команды с городами Москва, Питер, мы бы получили только 2 записи: Москва - Питер - (самая низкая цена) Питер - Москва - (самая низкая цена) Откуда вторая запись? её нет в исходных данных. Решением может быть запрос типа Код: sql 1. 2. 3. 4. 5. 6. Уникальность обеспечивается id строки. Это логистическая база. Город из, Город в, и стоимость за тонну (у каждого города свой id, здесь названия для простоты). Моя задача стоит в получении всех возможных комбинаций из заданных мной городов (их будет 8-10 штук). Если попытаться выразить необходимую мне выборку алгоритмом, то получится примерно следующее (допустим у нас города от 1 до 5): 1. Выбрать все записи, где де в ячейке town1 содержатся значение 1 или 2 или 3 или 4 или 5. 2. Из результата 1. выбрать все записи, где в ячейке town2 содержатся значение 1 или 2 или 3 или 4 или 5. 3. При условии совпадения масок town1 и town2 выбирается самое дешевое из них. (например если несколько записей из города 1 в город 3) Максимальное количество записей в выдаче при 5 городах составит 25. Надеюсь более понятно изъяснился. Спасибо в любом случае за комментарий, а то я почти сутки этим голову ломаю:). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 12:50 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39565508&tid=1830201]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 347ms |

| 0 / 0 |
