sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo fusionar las columnas de dos tablas en una sola salida?

Especificar las columnas en su consulta debería funcionar:

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

debería hacer el truco con respecto a elegir las columnas que desea.

Para sortear el hecho de que algunos datos solo están en items_a y algunos datos solo en items_b, podría hacer lo siguiente:

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

La función coalesce devolverá el primer valor no nulo, por lo que para cada fila si col1 no es nulo, lo usará, de lo contrario obtendrá el valor de col2, etc.