Как создать представление, выбрав две таблицы отношений один к одному, и заполнить все нулевое значение родительским значением - postgreSQL - PullRequest
1 голос
/ 27 апреля 2020

У меня есть 2 таблицы, структурированные так:

table A                   table B
- id                      - id
- name                    - name
- parent
- fk_b

, поэтому в таблице A есть parent и fk_b. для fk_b это может быть нулевым. поэтому, если в таблице A (дочерний элемент) значение fk_b равно нулю, он будет ссылаться на таблицу A (родительский), например, в строке таблицы A (родительский элемент) содержится fk_b.

Примечание. Этот родительский элемент содержит идентификатор таблицы A

мой вопрос, как мы можем выбрать таблицу A, соединяющую таблицу B. Но каждая таблица A с нулевым fk_b будет извлекать fk_b из своего родителя?

Спасибо

1 Ответ

0 голосов
/ 27 апреля 2020

Вы можете самостоятельно объединить таблицу, чтобы извлечь родительскую строку и реализовать условные логики c в предложении on объединения на tableb, например:

select a.*, b.name
from tablea a
left join tablea p on p.id = a.parent
left join tableb b on b.id = coalesce(a.fk_b, p.fk_b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...