Sobes.tech
Middle

Jak sloučit data ze dvou tabulek s různou úplností adresy a ceny v SQL?

sobes.tech AI

Odpověď od AI

Pro sloučení dat z dvou tabulek s různou úrovní vyplnění adresy a ceny můžete použít SQL dotaz s operátorem FULL OUTER JOIN. Tento operátor umožňuje spojit všechny záznamy z obou tabulek a zachovat data i v případě, že v jedné z tabulek chybí odpovídající hodnoty.

Příklad:

SELECT
  COALESCE(t1.id, t2.id) AS id,
  COALESCE(t1.address, t2.address) AS address,
  COALESCE(t1.price, t2.price) AS price
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.id = t2.id;

Zde:

  • COALESCE vybírá první nenulovou hodnotu ze seznamu, což umožňuje spojit data z obou tabulek.
  • FULL OUTER JOIN zajistí, že ve výsledku budou všechny záznamy z obou tabulek, i když v některých chybí data.

Pokud chcete spojit podle více sloupců nebo použít složitější logiku, můžete přidat další podmínky do ON nebo použít CASE pro zpracování dat.