powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / рекурсивный запрос (сетевая связь многие ко многим)
7 сообщений из 7, страница 1 из 1
рекурсивный запрос (сетевая связь многие ко многим)
    #39377341
rentgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день.
Имеем 2 таблицы.

t1
| id1 | id2 |
|-------------|--------|
| 100 | 200 |
| 100 | 300 |
| 100 | 400 |
| 400 | 600 |
| 700 | 600 |
| 111 | 222 |

t2
| id | other_id|
|-------------|--------|
| 100 | aaa |
| 100 | bbb |
| 600 | ccc |
| 400 | qqq |
| 111 | zzz |


Задача. Нужно сделать запрос, который бы выводил в один столбец все возможные связи по заданному id.

Например, у нас задано id = 100
Запрос должен вывести

|id |
|----|
|200|
|300|
|400|
|600|
|700|
|aaa|
|bbb|
|ccc|
|qqq|

Заранее спасибо
...
Рейтинг: 0 / 0
рекурсивный запрос (сетевая связь многие ко многим)
    #39377346
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rentgen,

А почему в одну колонку свалены данные из разных таблиц? Как это должно работать?
...
Рейтинг: 0 / 0
рекурсивный запрос (сетевая связь многие ко многим)
    #39377368
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делайте хранимую процедуру.
...
Рейтинг: 0 / 0
рекурсивный запрос (сетевая связь многие ко многим)
    #39377435
rentgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Так реализуется связь многие ко многим в РСУБД.
Эта таблица содержит в себе уникальные значения из других таблиц.
...
Рейтинг: 0 / 0
рекурсивный запрос (сетевая связь многие ко многим)
    #39377438
rentgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
я новичок, поэтому и обратился сюда на форум к экспертам , т.к. у меня есть проблема с составлением такого запроса (процедуры).
...
Рейтинг: 0 / 0
рекурсивный запрос (сетевая связь многие ко многим)
    #39377443
rentgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
я прошу прощения неправильно понял Ваш вопрос. Эти айдишники я буду подставлять в другой запрос, в таблицу , которая содержит

|id|name|

в этой таблице id = id1 = id2 = other_id.

Что бы вы лучше понимали вот ссылка на часть структуры БД

https://docs.google.com/spreadsheets/d/1YpBiJH-0yRtopyNAS_sEec5TeMAGgkfhijcYbb2udEs/edit#gid=0
В данной ситуации приведён пример из таблицы parts_to_parts
...
Рейтинг: 0 / 0
рекурсивный запрос (сетевая связь многие ко многим)
    #39377473
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rentgenу меня есть проблема с составлением такого запроса (процедуры)
Синтаксис операторов создания процедур описан в документации .

Алгоритмически:

1) Создаём временную таблицу
2) Вставляем в неё запись с исходным ID
3) В цикле заполняем таблицу данными
3а) запоминаем в переменной текущее количество записей в таблице
3б) запросом вставляем в таблицу детей для всех записей таблицы t1, дубликаты игнорируем
3в) сравниваем количество записей с тем, что запомнено с шага 3а, при неравенстве повторяем
4) запросом вставляем в таблицу детей для всех записей таблицы t2
5) во временной таблице находится требуемая выборка

Можно использовать непосредственно данные во временной таблице или копировать в выводной поток, если дальнейшие операции проводить в том же подключении, можно копировать данные в статическую таблицу.

Временная таблица после закрытия соединения удалится автоматически.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / рекурсивный запрос (сетевая связь многие ко многим)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]