2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Выборка комбинаций из табл согласно значениям из другой табл
Сообщение13.06.2020, 12:38 
Аватара пользователя
Добрый день!

Подскажите, как выбрать из таблицы SQL формата:

Названия | поле
схема | 1
плата | 2
плата | 1
плата | 3
плата | 4
разъём| 1
разъём| 3

все возможные комбинации Названий, которые содержат полностью значения таблицы SQL:
| поле
| 1
| 3
| 2
| 4

Итог нужен такой:

1. схема | 1
плата | 2
плата | 3
плата | 4

2. плата | 2
плата | 4
разъём| 1
разъём| 3

3. плата | 2
плата | 1
плата | 4
разъём| 3

4. плата | 2
плата | 3
плата | 4
разъём| 1

 
 
 
 Posted automatically
Сообщение13.06.2020, 12:45 
 i  Тема перемещена из форума «Компьютерные сети и Web-технологии» в форум «Карантин»
по следующим причинам:

- формулировка вопроса пока что такая, что понять его весьма трудно.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 
 Posted automatically
Сообщение13.06.2020, 13:13 
 i  Тема перемещена из форума «Карантин» в форум «Программирование»

 
 
 
 Re: Выборка комбинаций из табл согласно значениям из другой табл
Сообщение26.07.2020, 04:29 
Аватара пользователя
samson4747 всё-таки не совсем понятно что Вы ищете - к примеру почему в Вашем списке решений нет варианта
Схема | 1
Плата | 2
Плата | 4
Разъём | 3

и какой именно диалект SQL Вы планируете использовать ? У меня есть ощущение что задачу проще решить не средствами SQL а сформировав массивы возможных Названий для каждого из значений "поля" и потом построив их перемножение ... можно конечно это и в один оператор всё уложить (наверное) но будет некрасиво.

А так если в лоб решать - Первый шаг - получаем стартовый массив ( что-то из серии select distinct поле from table в список ) ... второй шаг - набираем значения через курсор ( из серии select distinct поле Название from table в курсор .... add курсор-название к структуре список где список-поле = поле ) ... ну и третий шаг бегом по списку сверху вниз с права на лево формируя таблицу результата ( все элементы списка последнего значения с первыми элементами всех предыдущих ... потом с первым(n-1 раз)-вторым и так далеее ( вложенные циклы проще всего это реализуют по-моему ). Теоретически последняя операция является полным аналогом внешнего джойна для N таблиц .. но в памяти быстрее наверное будет )

 
 
 
 Re: Выборка комбинаций из табл согласно значениям из другой табл
Сообщение26.07.2020, 15:11 
Zul в сообщении #1476004 писал(а):
всё-таки не совсем понятно что Вы ищете - к примеру почему в Вашем списке решений нет варианта
Вы, скорее всего, зря тратите время. ТС написал 6 сообщений в 2015-м году, потом на пять лет пропал, создал этот топик и пропал опять.

Zul в сообщении #1476004 писал(а):
и какой именно диалект SQL Вы планируете использовать ? У меня есть ощущение что задачу проще решить не средствами SQL
Я тоже ничего не понял в постановке задачи, но если сыграть в игру "угадай, в чем могла бы заключаться задача", то я бы предположил, что подойдет любой диалект, в котором есть recursive CTE (это который with recursive as (select ...)) - там все возможные комбинации должны находиться довольно просто.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group