PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie kann ich die Spalten aus zwei Tabellen zu einer Ausgabe zusammenführen?

Die Angabe der Spalten in Ihrer Abfrage sollte ausreichen:

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

sollte in Bezug auf die Auswahl der gewünschten Spalten ausreichen.

Um die Tatsache zu umgehen, dass sich einige Daten nur in items_a und einige Daten nur in items_b befinden, könnten Sie Folgendes tun:

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

Die Coalesce-Funktion gibt den ersten Nicht-Null-Wert zurück, also wird sie für jede Zeile, wenn col1 nicht null ist, diesen verwenden, andernfalls erhält sie den Wert von col2 usw.