title: fill null values by joining dataframe with different number of rows and on multiple column
body: <p>I've tried to search but although I got similar scenarios I didn't find what I was looking for.</p>
  <p>I have the following two dataframes:</p>
  <pre><code>+---------------------------+
  |   ID|       Value|   type |
  +---------------------------+
  |  user0|     100  |   Car  |
  |  user1|     102  |   Car  |
  |  user2|     109  |   Dog  |
  |  user3|     103  |   NA   |
  |  user4|     110  |   Dog  |
  |  user5|     null |   null |
  |  user6|     null |   null |
  |  user7|     null |   null |
  +---------------------------+
  
  +---------------------------+
  |   ID2|     Value2|  type2|
  +---------------------------+
  |  user5|     115  |  Cell  |
  |  user6|     103  |  Cell  |
  |  user7|     100  |  Fridge|
  +---------------------------+
  </code></pre>
  <p>I'd like to join those two and have this as result:</p>
  <pre><code>+---------------------------+
  |   ID|       Value|   type |
  +---------------------------+
  |  user0|     100  |   Car  |
  |  user1|     102  |   Car  |
  |  user2|     109  |   Dog  |
  |  user3|     103  |   NA   |
  |  user4|     110  |   Dog  |
  |  user5|     115  |   Cell |
  |  user6|     103  |   Cell |
  |  user7|     100  | Fridge |
  +---------------------------+  
  </code></pre>
  <p>I have tried the following but it doesn't give back the desired results:</p>
  <pre><code>df_joined= df1.join(df2,(df1.id==df2.id2) &amp;
                        (df1.value==df2.value2) &amp;
                       (df1.type==df2.type2),
                        &quot;left&quot;).drop('id2','value2','type2')  
  </code></pre>
  <p>I only get the values from the first df, probably left is not the right join type but I can't understand what should I use.</p>