I need add a new column (status) on my main table (Table 1) on my bd Postgres, to do this , I need to compare two columns from table 1 on table 2 , if the two columns exist , I need to copy the status from table 2 to the new column on table 1 , if not exist , e need to fill the status column with ‘New’. Do youw know if it´s possible ? how ?
x
TABLE 1
HOST | UUID
HOST - 1 | 3
HOST - 4 | 5
HOST - 3 | 6
HOST - 4 | 9
HOST - 5 | 10
HOST - 6 | 12
HOST - 8 | 2
HOST - 8 | 14
TABLE 2
HOST | UUID | STATUS
HOST - 4 | 9 | OPEN
HOST - 6 | 12 | ACCEPT
HOST - 8 | 14 | CLOSED
TABLE 1 (new column status)
HOST | UUID | STATUS
HOST - 1 | 3 | NEW
HOST - 4 | 5 | NEW
HOST - 3 | 6 | NEW
HOST - 4 | 9 | OPEN
HOST - 5 | 10 | NEW
HOST - 6 | 12 | ACCEPT
HOST - 8 | 2 | NEW
HOST - 8 | 14 | CLOSED
Table 1 with a new status column
Thanks
Advertisement
Answer
You are describing a LEFT
join of Table1
to Table2
:
select t1.*,
coalesce(t2.status, 'NEW') status
from Table1 t1 left join Table2 t2
on t2.uuid = t1.uuid and t2.host = t1.host