PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Outer join 3 o più tavoli in Laravel 8

Puoi risolverlo in un modo più semplice:

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; 

Puoi trovarlo in violino https://www.db-fiddle.com/f /eJsPZijRnQFGXugLGHnn93/0

NOTA:ho presupposto che i valori null visualizzati come '-' siano solo la formattazione dell'output. In caso contrario, l'output con NULL può essere convertito in '-'.

NOTA2:non so come convertire in codice Laravel/PHP, spero che tu abbia un'idea migliore.