#sql #postgresql
Вопрос:
Я хочу запустить несколько обновлений в одном запросе, возвращающем*, и выбрать выходные данные в виде строк. В настоящее время у меня есть
with
foo as (update table set .. where id = $1 retuning *),
bar as (update table set .. where id = $2 retuning *)
select * from table where id = $1 or id = $2;
Это делает то, что я ищу, но мне кажется, что это можно улучшить. Я почти заставил его работать вот так
select * from foo, bar
но он отображается в виде одной строки, а не двух отдельных строк
Ответ №1:
Я думаю, что вы просто хотите union all
(или, возможно, «союз1»):
select foo.*
from foo
union all
select bar.*
from bar;