172 похожих чатов

Всем привет! У меня есть дерево связей, одна сущность может

содержать в себе детей, и так далее до бесконечности. У меня это реализовано так:

Таблица:
- entity: id, name
- entity_relations: id, parent_id, entity_id

Задача, получить id всех детей, по id родителя, через чистый sql. Я написал такой функционал используя язык программирования и перебор всех детей до самого конца, но это вообще не оптимальный путь как по мне. По скл не очень силен, может кто встречал уже готовые конструкции для выборки всех детей, применимую для моей структуры таблиц? Спасибо!

P.S Таблица связей нужна из-за того, что одна сущность может быть привязана несколько раз к разным сущностям

3 ответов

6 просмотров

Recursive CTE, см. https://www.postgresql.org/docs/current/queries-with.html Там есть примеры обхода дерева и графа.

Запрос в поиск: SQL иерархия в ответах будет вариантов в ассортименте и достатке. Выбирайте, что понравится.

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Не получается у меня либу Zstd статически слинковать, вылазят какие-то AV Вроде example у них не сложный есть, вроде всё делаю как там... но не выходит чего-то Вопрос - если ...
notme
4
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
7
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
8
Привет всем, подскажите, есть сайт на ево 1.4, надо сделать его мультиязычным, структура документов одинаковой останется, чисто тексты разные, свои тв для каждого языка, поддо...
Oleg
7
@rouse_79 https://github.com/AlexanderBagel/FWZip/blob/8c6882a31ffaa9a23e66e22eaa5b1f7ebfcad43c/zlib_external.pas#L393 Почему Си-шная функция memset, параметр отвечающий за з...
notme
8
Карта сайта