In MySQL, how to update some columns of existing rows and insert new rows from a reference table?
===

The following will get me values from a reference table `t2` I want to insert to table `t1`:

    SELECT 
      id, col1 
    FROM 
      t2
    LEFT OUTER JOIN 
      t1
    ON 
      t2.id=t1.id

If a tuple with `id` already exist in `t1`, it should be updated with the value selected from `t2`.  If a tuple with `id` does not exist in `t1`, `(id, col1)` should be inserted with other columns set to default values.


How to do this efficiently?