sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik de kolommen van twee tabellen samenvoegen tot één uitvoer?

Het specificeren van de kolommen in uw zoekopdracht zou voldoende moeten zijn:

select a.col1, b.col2, a.col3, b.col4, a.category_id 
from items_a a, items_b b 
where a.category_id = b.category_id

zou de truc moeten doen met betrekking tot het kiezen van de kolommen die u wilt.

Om het feit te omzeilen dat sommige gegevens zich alleen in items_a bevinden en sommige gegevens alleen in items_b, kunt u het volgende doen:

select 
  coalesce(a.col1, b.col1) as col1, 
  coalesce(a.col2, b.col2) as col2,
  coalesce(a.col3, b.col3) as col3,
  a.category_id
from items_a a, items_b b
where a.category_id = b.category_id

De coalesce-functie retourneert de eerste niet-null-waarde, dus voor elke rij als col1 niet null is, zal het dat gebruiken, anders krijgt het de waarde van col2, enz.



  1. Welke join-syntaxis is beter?

  2. Afdruk samenvoegen doen in Access 2016

  3. bewaar postgresql-resultaat in bash-variabele

  4. Hoe te controleren of een database bestaat in SQL Server?