| 
 | 
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Имеется таблица TBL1 : FLD1FLD21A1B2A2C3D3E4C4F Необходимо получить из TBL1 выборку следующего содержания: FLD3FLD41A1B1C1F2D2E Можно ли получить такой результат SQL запросом SELECT или здесь нужны какие-то другие способы? Направьте, пожалуйста, в каком направлении искать решение? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 11:20 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729, завязывать с тяжелыми наркотиками. другого решения я не вижу ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 11:43 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729 Можно ли получить такой результат SQL запросом SELECT...? Можно. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 11:46 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Кот Матроскинsg729Можно ли получить такой результат SQL запросом SELECT...? Можно. Вложенные запросы? Так ведь заранее неизвестно сколько звеньев может быть в цепочке связей по ключу FLD1: A -> C -> F ... и т.д. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 13:23 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729Кот Матроскинпропущено... Можно. Вложенные запросы? Так ведь заранее неизвестно сколько звеньев может быть в цепочке связей по ключу FLD1: A -> C -> F ... и т.д.Вкладывайте. И завязывайте с наркотиками. А ещё лучше поясните толком что ж вам надо-то? Алгоритм какой? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 14:05 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Павел Воронцовsg729пропущено... Вложенные запросы? Так ведь заранее неизвестно сколько звеньев может быть в цепочке связей по ключу FLD1: A -> C -> F ... и т.д.Вкладывайте. И завязывайте с наркотиками. А ещё лучше поясните толком что ж вам надо-то? Алгоритм какой? Узнать все связи, например, узла A с другими - и прямые и косвенные (через промежуточные узлы). P.S. Наркотики сроду не употреблял -) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 14:21 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729Узнать все связи, например, узла A с другими - и прямые и косвенные (через промежуточные узлы). вот для начала , дайте пожалуйста , 1. определения понятий "узел" и "Узел X связан с узлом Y" 2. какова связь определенных вами понятий с содержимым таблиц. sg729P.S. Наркотики сроду не употреблял -) это хорошо... это по-настоящему - без всякого стёба - хорошо... плохо, что это сразу незаметно. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 18:22 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  yahsg729Узнать все связи, например, узла A с другими - и прямые и косвенные (через промежуточные узлы). вот для начала , дайте пожалуйста , 1. определения понятий "узел" и "Узел X связан с узлом Y" 2. какова связь определенных вами понятий с содержимым таблиц. Узел - объект, хранящийся в базе данных. Каждый объект имеет уникальный идентификатор "A", "B", "C" и т.д. (для облегчения восприятия сути пишу здесь одной буквой, в действительности там varchar(40). Некоторые объекты (не обязательно все) связаны друг с другом. Связи задаются в таблице TBL1 записями, имеющими одинаковые значения ключевого поля FLD1. Т.е. узел "A" напрямую связан с узлом "B" (через ключ FLD1=1) и с узлом "C" (через ключ FLD1=2). В свою очередь узел "C" напрямую связан с узлом "F" (через ключ FLD1=4). Таким образом косвенно узел "A" связан и с "F" (через "С"). Задача простая - при необходимости выдернуть из TBL1 для конкретного узла (например для "А") идентификаторы всех других узлов прямо или косвенно связанных с заданным (т.е. с "А"). Пробегать по TBL1 сверху вниз - не вариант, поскольку таблица будет содержать несколько десятков (вероятно и сотен) тысяч записей. Возможен ли здесь хитрый Select - говорят да, но я пока не знаю какой. Быть может такая структура таблицы вообще не годится для этой задачи, но лучше придумать не смог. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 19:24 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729Быть может такая структура таблицы вообще не годится для этой задачи, но лучше придумать не смог. ну в общем да... выглядит она странновато, что и породило отдельные комментарии. на самом деле вы описали отношение эквивалентности на множестве узлов. есть нехитрая теорема, что ОЭ <=> множество можно разбить на непересекающиеся подмножества, внутри которых элементы эквивалентны, а любые два элемента из разных - нет. на самом деле у вас кейз - если он точно описан - на построение компонент связности для графа. для хранения такого рода инфы больше подходит что-то вроде: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ну и процедурой можно заполнить Group_id процедура - курсор по Knot_Objects например. т.е. если ребра графа - не быстро меняющаяся сущность, такой вариант даже желательнее чем любое определение на лету - как бы его не написать. насчет вопроса sg729Возможен ли здесь хитрый Select - говорят да, но я пока не знаю какой. при определенных дополнительных требованиях к отношению Knot_links, есть в оракле конструкции, позволяющие обходить иерархию, которые можно вкрячить в как-бы селект. но я это плохо знаю. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.11.2017, 20:51 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729, Это поиск по дереву. Ответ сильно зависит от конкретной СУБД, которую вы используете. Общий ответ - это можно сделать с помощью одного запроса, но не всегда это разумно и эффективно. Заявленные десятки тысяч записей могут быть проблемой, а могут и не быть. Настоящей проблемой является само дерево и методы хранения информации о нем. Есть несколько подходов к этому, литературы в сети море. Ищите, адаптируйте.... Указанная Вами схема очевидным образом не соответствует заявленной же задаче использования. Если операция "достать все связи узла" частая и критичная по времени, то придется повозиться. Храните полное дерево, отслеживайте его заполнение с помощью триггеров-процедур и доставайте нужные связи быстро. Если операция редкая и пользователь может подождать - напишите запрос/процедуру для перебора дерева и будет вам счастье. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 06:48 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  waszkiewiczsg729, завязывать с тяжелыми наркотиками. другого решения я не вижу Автора все еще плющит ) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 10:28 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  yahмножество можно разбить на непересекающиеся подмножества, внутри которых  элементы эквивалентны, а любые два элемента из разных - нет Вот именно это мне и нужно! Вертелось в голове нечто похожее, но никак не мог ухватить суть. Теперь ясно куда грести. Очевидно Вы правы, проще сгенерировать дерево связей и хранить его в базе, модифицируя по мере необходимости. Спасибо! -) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 14:36 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Павел Воронцовsg729, Храните полное дерево, отслеживайте его заполнение с помощью триггеров-процедур и доставайте нужные связи быстро. Пожалуй так и сделаю. Почему-то думал, что при таком подходе для удаления выбранной связи будет трудно реализовать модификацию дерева без его полного перестроения (что заняло бы много времени), но оказалось, что можно найти приемлемое решение. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 14:47 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Злой Бобрwaszkiewiczsg729, завязывать с тяжелыми наркотиками. другого решения я не вижу Автора все еще плющит ) Неужели я похож на сумасшедшего? -) А впрочем, стебитесь на здоровье, смех продлевает жизнь -) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 14:54 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729yahмножество можно разбить на непересекающиеся подмножества, внутри которых  элементы эквивалентны, а любые два элемента из разных - нет Вот именно это мне и нужно! Вертелось в голове нечто похожее, но никак не мог ухватить суть. Теперь ясно куда грести. Очевидно Вы правы, проще сгенерировать дерево связей и хранить его в базе, модифицируя по мере необходимости. Спасибо! -) наслаждайтесь ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 20:03 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  yah наслаждайтесь  Премного благодарен! -) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.11.2017, 20:38 | 
  
  
  
   | 
||
| 
 
Select или другое? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sg729Павел Воронцовпропущено... Вкладывайте. И завязывайте с наркотиками. А ещё лучше поясните толком что ж вам надо-то? Алгоритм какой? Узнать все связи, например, узла A с другими - и прямые и косвенные (через промежуточные узлы). P.S. Наркотики сроду не употреблял -) ДА ЛАДНО!!! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.11.2017, 18:06 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=32&msg=39553862&tid=1540113]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    64ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    55ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 272ms | 
| total: | 436ms | 

| 0 / 0 | 
