Что вы описываете это full join
. Если ваша СУБД поддерживает это, тогда логика c:
select time, a.p1, b.p2
from ( ... query A ...) a
full join ( ... query B ...) b using(time)
Обратите внимание, что это предполагает, что оба запроса возвращают столбец с именем time
, что упрощает синтаксис.
Если ваша база данных не поддерживает full join
s, вы можете использовать union all
и агрегирование:
select time, max(p1) p1, max(p2) p2
from (
select time, p1, null from (... query A ...)
union all select time, p1, null from (... query B ...)
) t
group by time