sql >> Base de Datos >  >> RDS >> PostgreSQL

Unión externa de 3 o más tablas en Laravel 8

Puedes resolverlo de una manera más fácil:

select ts recordtime, max(to1) tempout, max(to2) tempoutstamb, max(to3) tempoutstamb2
from (
  select ts, tempout to1, cast (null as numeric(10,1)) to2, cast (null as numeric(10,1)) to3
  from table1
union all 
  select ts, null, tempout, null
  from table2
union all
  select ts, null, null, tempout
  from table3
) tt
group by ts
order by ts; 

Puede encontrarlo en fiddle https://www.db-fiddle.com/f /eJsPZijRnQFGXugLGHnn93/0

NOTA:he asumido que los valores nulos que se muestran como '-' son solo formato de salida. Si ese no es el caso, la salida con NULL se puede convertir a '-'.

NOTA 2:No sé cómo convertir a código Laravel/PHP, espero que tengas una mejor idea.