I have two tables that I want to join using a date field:
- Table 1: there’re multiple records for each date
- Table 2: there’s only 1 record for each date
How can I update records in Table 1 with fields from Table 2 corresponding the date. Here’s an example:
x
table1
column1 column2 column3
03/02/2018 .
03/02/2018 .
03/02/2018 .
04/02/2018 .
04/02/2018 .
05/02/2018 .
05/02/2018 .
table2
column4 column5 column6
03/02/2018 . .
04/02/2018 . .
05/02/2018 . .
here is what I would like to do
table1
column1 column2 column3 column4 column5 column6
03/02/2018 .
03/02/2018 .
03/02/2018 . . . <= same date
04/02/2018 .
04/02/2018 . . . <= same date
05/02/2018 .
05/02/2018 . . . <= same date
thanks!
Advertisement
Answer
You seem to just want a left join
:
select t1.*, t2.column5, t2.column6
from table1 t1 left join
table2 t2
on t1.column1 = t2.column4;
I don’t see value in actually adding these columns to the table. With both tables in the same database and indexes on the join
columns, the performance for running the query should be fine.
If you really want to update table1
, you need to start by altering the table to have the new columns (which can be an expensive operation) and then updating the values in the columns.