I have two tables, one is called original_table
and the other is table_with_additional_column
.
table_with_additional_column
is a subset of original_table
but with an additional column called sequenceNr
. I want to merge the two tables such that I can get all rows from original_table
with sequenceNr
set to NULL where the rest of the column values don´t match the ones in table_with_additional_column
. I would like to replace the rows in original_table
instead of just inserting the rows from table_with_additional_column
Here´s an example:
original_table
column_1 | column_2 | column_3 |
---|---|---|
aaa | bbb | ggg |
ccc | ddd | hhh |
eee | fff | iii |
table_with_additional_column
column_1 | column_2 | column_3 | sequencenr |
---|---|---|---|
aaa | bbb | ggg | 1 |
ccc | ddd | hhh | 2 |
What I want as result of merge:
column_1 | column_2 | column_3 | sequencenr |
---|---|---|---|
aaa | bbb | ggg | 1 |
ccc | ddd | hhh | 2 |
eee | fff | iii | NULL |
Here´s my query so far:
SELECT column_1, column_2, column_3, sequenceNr FROM ( SELECT table_A.*, table_B.sequenceNr FROM table_A, table_B ) AS table_with_additional_column RIGHT JOIN original_table ON original_table.column_1 = table_with_additional_column.column_1 AND original_table.column_2 = table_with_additional_column.column_2 AND original_table.column_3 = table_with_additional_column.column_3
I would appreciate some help with the SQL query regarding how to merge the two tables. Thanks in advance.
Advertisement
Answer
You can use left join
for this:
select ot.*, twac.sequencenr from original_table ot left join table_with_additional_column twac on ot.col1 = twac.col1 and ot.col2 = twac.col2 and ot.col3 = twac.col3;
Your description pretty much explains exactly what left join
does.