Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> цепной запрос
arogorns  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




Гутен таг всем.

Задача следующая: есть таблица с 2 полями (условно А и Б, у обоих тип интеджер)

Таблица содержит замену айди товара в другой таблице. То бишь товар с айди из А теперь является товаром с айди из Б.

Суть в том, что мне нужно найти все существующие цепочки.
Пример

А Б
1 23
........
23 147
........

А вывод 1 -> 23 -> 147 -> ....

По логике тут нужна цепочка. А я за 4 года разлуки с SQL забыл напрочь, хорошо ли Скуль с такими вещами дружит.

Подскажите советом, с чего стартовать?

Это сообщение отредактировал arogorns - 2.02.2016 - 16:12
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 20 дней
Карма: 167




Цитата (arogorns @ 2.02.2016 - 15:11)
хорошо ли Скуль с такими вещами дружит

хорошо
Цитата (arogorns @ 2.02.2016 - 15:11)
с чего стартовать?

с нормального описания ТЗ и готовности выписать чек на сумму достаточную для оплаты.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




Цитата (Valick @ 2.02.2016 - 16:34)
Цитата (arogorns @ 2.02.2016 - 15:11)
хорошо ли Скуль с такими вещами дружит

хорошо
Цитата (arogorns @ 2.02.2016 - 15:11)
с чего стартовать?

с нормального описания ТЗ и готовности выписать чек на сумму достаточную для оплаты.

Какие все все же стали меркантильные)

Как решить задачу на том же С++ (если представить таблицу как 2-хмерный массив), я понимаю: просто рекурсионной функцией проходишь по каждому элементу таблицы А и формируешь строку, попутно скидывая Айдишки из А в сэт, дабы не повторялись.

А вот как такое же на скуле изобразить, что то не врубаюсь.

З.Ы. я ж не прошу за меня решить) просто вектор задайте, а там я сам)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 26 дней
Карма: 13




Возможно оно
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14978
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 3 дня
Карма: 444




Цитата (Valick @ 2.02.2016 - 16:34)
и готовности выписать чек на сумму достаточную для оплаты

Я тебя не узнаю...

arogorns, тебе нужен LEFT JOIN в данном случае.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 20 дней
Карма: 167




arogorns, реляционная БД не предназначена для хранения деревьев.
Почитайте например о Nested Sets


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 20 дней
Карма: 167




Цитата (sergeiss @ 2.02.2016 - 16:05)
Я тебя не узнаю...

разговор о деньгах обычно сильно стимулирует
Цитата (sergeiss @ 2.02.2016 - 16:05)
тебе нужен LEFT JOIN

боюсь длинна вложенности ничем не ограничена


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




Цитата (Valick @ 2.02.2016 - 17:12)
Цитата (sergeiss @ 2.02.2016 - 16:05)
тебе нужен LEFT JOIN

боюсь длинна вложенности ничем не ограничена


Именно так. Иначе бы джойном обошелся
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14978
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 3 дня
Карма: 444




В таком случае почитай вот эту тему http://phpforum.su/index.php?showtopic=31806 - там и про Мускуль тоже есть.

PS. Подумай о переходе на Постгре... Тогда у тебя будет существенно меньше проблем с БД wink.gif

Это сообщение отредактировал sergeiss - 2.02.2016 - 17:31


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




Цитата (sergeiss @ 2.02.2016 - 17:28)
В таком случае почитай вот эту тему http://phpforum.su/index.php?showtopic=31806 - там и про Мускуль тоже есть.

PS. Подумай о переходе на Постгре... Тогда у тебя будет существенно меньше проблем с БД wink.gif

За ссылочку спасибо, изучу.

Переход не вариант. слишком большая и древняя база.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









arogorns, по-моему вот что-то подобное http://stackoverflow.com/a/32775285
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




выходит, нужен обход дерева с запоминанием корня (чтобы кольца избежать), я верно понимаю?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




в общем, обходом получилось) Но появилось дикое желание вырвать руки создателям базы.

всем спасибо)

П.С. напоследок - цитата из лога, дабы было ясно, насколько всё плохо

C 42 190 => C 42 107
C 42 189 => A 42 134 => C 42 106 => A 42 134 => C 42 106 => A 42 134 => C 42 106 => A 42 134 => C 42 106 => A 42 134 => C 42 106
C 42 188 => A 42 133

Это сообщение отредактировал arogorns - 10.02.2016 - 13:06
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2488
Пользователь №: 18040
На форуме: 7 лет, 5 месяцев, 27 дней
Карма: 77




Смотри в сторону postgresql, наследование.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 14 дней
Карма:




Цитата (ИНСИ @ 10.02.2016 - 13:08)
Смотри в сторону postgresql, наследование.

из-за такого никто базу переделывать не будет. ей там лет 10+
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса