|
PostgreSQL select where table from select | ☑ | ||
|---|---|---|---|---|
|
0
gerodoth
09.06.20
✎
22:19
|
Доброго дня, помогите составить запрос.
Есть куча баз похожих но немного разных по наименованиям таблиц, все крутятся на постгресе. Нужно отобрать в таблицах с РН не активные записи Что-то типа SELECT * FROM (SELECT table_name FROM information_schema.tables where table_name like '%accumrg%') WHERE _active = False запрос в скобках отрабатывает, а как его результат использовать в запросе снаружи - знаний не хватает. Спасибо. |
|||
|
1
youalex
09.06.20
✎
22:31
|
CTE : https://www.postgresqltutorial.com/postgresql-cte/
with cte1 as (SELECT table_name FROM information_schema.tables where table_name like '%accumrg%') WHERE _active = False) select * from cte1 |
|||
|
2
youalex
09.06.20
✎
22:33
|
т.е.
with cte1 as (SELECT table_name FROM information_schema.tables where table_name like '%accumrg%') select * from cte1 WHERE _active = False |
|||
|
3
gerodoth
10.06.20
✎
08:06
|
спасибо!
|
|||
|
4
gerodoth
10.06.20
✎
08:40
|
немного не доходит
последний запрос выдает ошибку, а with cte1 as (SELECT table_name FROM information_schema.tables where table_name like '%accumrg%') select * from cte1 выдает список баз в столбик |
|||
|
5
bolero
10.06.20
✎
09:51
|
(1) да, ты сам-то пробовал?
> Common Table Expressions or CTEs, can be thought of as defining temporary tables that exist just for one query (0) я похожую задачу решаю в два захода: одним запросом составляю список таблиц, у которых _есть_ такое поле (а оно например может быть не у всех таблиц) по шаблону заполняю второй запрос (важно выбирать только конкретные поля) и соединяю его UNION ALL типа того:
|
|||
|
6
gerodoth
10.06.20
✎
11:09
|
мне б так чтоб вообще одной универсальной командой по разным базам. иначе проще в 1с получать список баз из структуры бд и генерить запрос для постгреса, оставляю этот вариант на потом если первым не выйдет.
|
| Форум | Правила | Описание | Секции | Поиск |