sql >> Databáze >  >> RDS >> PostgreSQL

Vnější spojení 3 nebo více stolů v Laravel 8

Můžete to vyřešit jednodušším způsobem:

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; 

Najdete ho na housle https://www.db-fiddle.com/f /eJsPZijRnQFGXugLGHnn93/0

POZNÁMKA:Předpokládal jsem, že hodnoty null zobrazené jako „-“ jsou pouze formátováním výstupu. Pokud tomu tak není, lze výstup s hodnotou NULL převést na „-“.

POZNÁMKA 2:Nevím, jak převést na kód Laravel/PHP, doufám, že budete mít lepší nápad.



  1. Identifikátor automatického přidělování Rails, který již existuje

  2. Nejúčinnější způsob, jak provést SQL 'INSERT IF NOT EXISTS'

  3. Jaké jsou role a oprávnění dát uživateli, aby mohl provádět CRUD (na Oracle 12)

  4. Získejte název volající procedury nebo funkce v Oracle PL/SQL