sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kan jag slå samman kolumnerna från två tabeller till en utdata?

Att specificera kolumnerna i din fråga borde göra susen:

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

bör göra susen när det gäller att välja de kolumner du vill ha.

För att komma runt det faktum att vissa data bara finns i items_a och vissa data bara finns i items_b, skulle du kunna göra:

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

Koalesceringsfunktionen kommer att returnera det första icke-nullvärdet, så för varje rad, om col1 inte är null, kommer den att använda det, annars får den värdet från col2, etc.



  1. Forcera indexanvändning i Oracle

  2. Hur kan jag förhindra SQL-injektion i PHP?

  3. dubbla resultat i min array ( mysql_fetch_array )

  4. Hur väljer man bara 1 rad från oracle sql?