powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / выборка из таблиц по условию
4 сообщений из 4, страница 1 из 1
выборка из таблиц по условию
    #40009634
Фотография Cola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу помощи!!
Есть три таблицы:
1. "Список объектов". Поля: id, id_table, id_object, propertis1, propertis2
2. "Объекты типа1". Поля: id_object, Name_object
3. "Объекты типа2". Поля: id_object, Name_object

Нужно получить: id, id_table, id_object, Name_object, , propertis1, propertis2
При чем ВАЖНО в запросе необходимо сделать логическую связь с нужной таблицей в зависимости от значения в поле "id_table"

Всем за ранее благодарна за помощь!
...
Рейтинг: 0 / 0
выборка из таблиц по условию
    #40009639
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cola
Прошу помощи!!
Есть три таблицы:
1. "Список объектов". Поля: id, id_table, id_object, propertis1, propertis2
2. "Объекты типа1". Поля: id_object, Name_object
3. "Объекты типа2". Поля: id_object, Name_object

Нужно получить: id, id_table, id_object, Name_object, , propertis1, propertis2
При чем ВАЖНО в запросе необходимо сделать логическую связь с нужной таблицей в зависимости от значения в поле "id_table"

Всем за ранее благодарна за помощь!


Вам надо чтобы быстро работало или задачу абстрактную решить?
Если второе то как то так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select "Список объектов".*, _t."Name_object" from "Список объектов"
join 
(
   select *, 'Объекты типа1' AS id_table from "Объекты типа1"
   UNION ALL
   select *, 'Объекты типа2' AS id_table from "Объекты типа2"
) AS _t ON _t.id_object="Список объектов".id_object AND _t.id_table="Список объектов".id_table;



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

PS: интересно я угадю что дальше вы напишите что у вас есть на самом деле не только таблицы 2 и 3 а еще 4,5,6... ,какое то неопределенное N или нет?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
выборка из таблиц по условию
    #40009649
Фотография Cola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk, так нельзя делать.
потому, что id в таблицах "Объекты типа1" и "Объекты типа2" одни и те же, но относятся к разным записям в "Список объектов"
В итоге полученные данные будут не релевантные. Вопрос не в объединение двух таблиц, а в том, что нужно динамически определять из какой таблицы брать данные.
На уровне структуры базы никакой проблемы нет. Самая большая таблица, это "Список объектов", а две другие "Объекты типа1" и "Объекты типа2" - маленькие. И да, Вы правы их не две, а больше. Потому, что это справочники. А в большой таблице описываются доступы к этим справочникам. Это я для примера так назвала таблицы. Мне надо собрать доступы в разрезе данных хранящихся в справочниках. Я знаю, что Postgresql так может и даже где-то даже пример видела, но не могу найти (((
...
Рейтинг: 0 / 0
выборка из таблиц по условию
    #40009714
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cola
Maxim Boguk, так нельзя делать.
потому, что id в таблицах "Объекты типа1" и "Объекты типа2" одни и те же, но относятся к разным записям в "Список объектов"
В итоге полученные данные будут не релевантные.

вы невнимательно читаете что я написал...
вот это для кого по вашему написано
Код: plsql
1.
 _t.id_table="Список объектов".id_table

в условиях join?


Cola
Я знаю, что Postgresql так может и даже где-то даже пример видела, но не могу найти (((

не может... не бывает динамического определения имен таблиц в sql запросах.
И это опять говорит что у вас кривая структура данных.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / выборка из таблиц по условию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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