![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.03.2019
Сообщений: 16
|
![]()
Всем доброе время суток)
Есть таблица, скрин приложил. Нужно вывести все родительские элементы у 4-д/1. Т.е. должен "гулять" по полям Link и F_docs. Пробую сделать так: select t2.LINK, t2.C_Number, t2.F_Docs from DD_Docs as t1, DD_Docs as t2 where (t2.Link = t1.F_Docs ) Так выводит все, а когда добавляю условие and t2.C_Number = '4-д/1'; выводит одно значение. Просьба не сильно критиковать, только начал изучение. ПРошу помощи) |
![]() |
![]() |
![]() |
#2 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
вот он и выводит то что есть. Цитата:
Цитата:
возможно после ответов на данные вопросы все станет ясно и самому
программа — запись алгоритма на языке понятном транслятору
|
|||
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в F_Docs находится ссылка на родителя?
и Вам нужно получить сначала link=7 потом у него родитель link=6 потом у него родитель link=1 ? Так это называется иерархическая структура и нужны особого вида запросы (или цикл). в стандартном SQL нет иерархических запросов. Поэтому нужно смотреть конкретную СУБД и реализовывать запрос в рамках её возможностей. p.s. если глубина вложенности не более чем N, то можно стандартными средствами намутить N подзапросов. Но это, разумеется, костыли и не (очень) красиво. |
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.03.2019
Сообщений: 16
|
![]()
Среда: SQL Server Management Studio v17.9.1
Код самой таблицы: CREATE TABLE dbo.DD_Docs -- Документы ( [LINK] [int] IDENTITY NOT NULL PRIMARY KEY, -- Ид [C_Number] [varchar] (50) NULL, -- Номер [F_Subscr] [int] NOT NULL, -- Л/с [C_Doc_Type] [varchar](50) NOT NULL, -- Тип [D_Date] [date] NOT NULL DEFAULT GETDATE(), -- Дата [F_Docs] [int] NULL, -- Родительский документ CONSTRAINT FK_DD_Docs_DD_Docs FOREIGN KEY (F_Docs) REFERENCES dbo.DD_Docs (LINK) Я просто не до конца понимаю, как это реализовать. Знаю, что должно быть на выходе: |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 13.03.2019
Сообщений: 16
|
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 13.03.2019
Сообщений: 16
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Попробуй заменить это Recursive на что-то попроще. Судя по цвету воспринимается как зарезервированное слово
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 13.03.2019
Сообщений: 16
|
![]()
Попробовал, ничего не меняется почему-то.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите начинающему | Родион23 | C# (си шарп) | 6 | 23.05.2016 23:43 |
Помогите начинающему | qeesl | Общие вопросы по Java, Java SE, Kotlin | 5 | 31.10.2015 19:01 |
Помогите начинающему. | Небесный | Общие вопросы Delphi | 12 | 04.02.2007 08:56 |