Похожие чаты

А из разных таблиц, просто перечисляем их в select(Table1, Table2...)

?

15 ответов

24 просмотра

Ты SQL знаешь? Про джойны слышал?

✖️-✖️ Автор вопроса
Pavel Павлик
Ты SQL знаешь? Про джойны слышал?

Только вкатываюсь в бек, джоины слышал только как опция для получения данных связанной таблицы )

✖️ ✖️
Только вкатываюсь в бек, джоины слышал только как ...

Надо в начале изучить SQL, а только потом приступать к изучению алхимии

✖️ ✖️
Только вкатываюсь в бек, джоины слышал только как ...

Я делаю рекурсивный CTE, который должен быть подзапросом, а потом его аггрегирую в array_agg: select id, (with recursive visual_path (id, title, type, parent_id) as ( select anchor.id as id, anchor.title as title, anchor.type as type, anchor.parent_id as parent_id from "location" as anchor where anchor.id = "location".id union select "recursive".id as recursive_id, "recursive".title as recursive_title, "recursive".type as recursive_type, "recursive".parent_id as recursive_parent_id from "location" as "recursive" join visual_path on visual_path.parent_id = recursive.id ) select array_agg(visual_path) FROM visual_path ) from "location"; И, как видишь, where anchor.id = "location".id должен ссылаться на поле из внешний запроса from "location". Но он на него не ссылается и просто аггрегирует все записи из БД

Ivan Butskiy
Я делаю рекурсивный CTE, который должен быть подза...

Когда ты делаешь В запросе select anchor.id as id, anchor.title as title, anchor.type as type, anchor.parent_id as parent_id from "location" as anchor where anchor.id = "location".id "location".id это location из самого запроса, а не самого верхнего. Попробуй алиасы расставить

Pavel Павлик
Когда ты делаешь В запросе select an...

Ну у меня же CTE идет как подзапрос, верно? Он же обернут скобками

При том, что выражение where anchor.id = "location".id фильтрует по "id" из внешнего запроса

Ivan Butskiy
При том, что выражение where anchor.id = "location...

Ну, я не знаю. Попробуй отдельные подзапросы погонять

Ivan Butskiy
Это как?

К примеру, взять cte, заменить = "location".id на конкретный айди из базы и посмотреть, что он выдает. Аналогично, можно поступить и с любым вложенным подзапросом

Ivan Butskiy
А, ну так работает как надо

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

Pavel Павлик
Ну, это что-то очень странное. Мне сложно сказать,...

Ну вот как я формирую запрос: anchor = aliased(Location, name='anchor') anchor = anchor.query\ .filter(anchor.id == 418)\ .with_entities(anchor.id, anchor.title, anchor.type, anchor.parent_id)\ .cte('visual_path', recursive=True) recursive = aliased(Location, name='recursive') recursive_part = recursive.query\ .with_entities(recursive.id, recursive.title, recursive.type, recursive.parent_id)\ .join(anchor, anchor.c.parent_id == recursive.id) recursive_part = anchor.union(recursive_part) recursive_part = db.session.query( postgresql.array_agg(func.ROW(recursive_part.c.id, recursive_part.c.title), type_=ArrayOfRecord))\ .select_from(recursive_part)\ .subquery() result = Location.query.with_entities(Location.id, recursive_part).all()

Ivan Butskiy
Ну вот как я формирую запрос: anchor = aliased(Lo...

Так, а откуда тот запрос? Ты уверен, что то, что формируется в алхимии, и то что ты скинул — это одно и тоже?

Pavel Павлик
Так, а откуда тот запрос? Ты уверен, что то, что ф...

Ну последняя переменная recursive_part прям точно формирует тот запрос, что я писал на SQL. Исключение только anchor.id == 418. Вместо 418 я использовал column('id'). Ведь если бы писал anchor.id == Location.id, то было во from было бы не from "location" as anchor, а from "location" as anchor, location. Но в идеале хотелось бы, чтобы этот CTE visual_path был добавлен как атрибут к location. Но в алхимии так нельзя, вроде бы. По-моему в Django ORM можно так делать, точно не помню

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Карта сайта