postgres: запрос результатов в переменные для последующего использования - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть сложный запрос, в котором некоторые части часто повторяются. Поэтому я хотел бы сохранить результаты некоторых подзапросов в переменных, которые затем могут быть использованы в основном запросе.

Например, я хотел бы установить переменную 'variable_id' равной запросу SELECT и variable_school_id равной другому запросу SELECT:

variable_id integer := (SELECT id FROM account WHERE email = 'test@test.com');
variable_school_id integer := (SELECT school FROM account WHERE email = 'test@test.com');

Тогда я бы хотел использовать эти переменные в запросе, который будет выглядеть так:

select * from doctor where account_id = variable_id AND school = variable_school_id ;

Как мне это сделать?

1 Ответ

0 голосов
/ 07 ноября 2018

Разве вы не можете просто использовать CTE?

with params as (
      SELECT id, school
      FROM account
      WHERE email = 'test@test.com'
     )
select d.*
from params cross join
     doctor d
     on d.account_id = params.id and d.school = params.school;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...