Sobes.tech
Middle

Ako spojiť údaje z dvoch tabuliek s rôznou úplnosťou adresy a ceny v SQL?

sobes.tech AI

Odpoveď od AI

Na spajanie údajov z dvoch tabuliek s rôznou úrovňou vyplnenia adresy a ceny môžete použiť SQL dotaz s operátorom FULL OUTER JOIN. Tento umožňuje spojiť všetky záznamy z oboch tabuliek a zachovať údaje aj v prípade, že v jednej z nich chýbajú zodpovedajúce hodnoty.

Prí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;

Tu:

  • COALESCE vyberá prvú nenulovú hodnotu zo zoznamu, čo umožňuje spojiť údaje z oboch tabuliek.
  • FULL OUTER JOIN zabezpečí, že vo výsledku budú všetky záznamy z oboch tabuliek, aj keď v niektorých chýbajú údaje.

Ak chcete spojiť podľa viacerých stĺpcov alebo použiť zložitejšiu logiku, môžete pridať ďalšie podmienky do ON alebo použiť CASE na spracovanie údajov.