title: CakePHP 3 Find All Contain NULL data, displays nothing?
body: <h2>UPDATE</h2>
  
  <p>This is the join from the SQL after all the selects,</p>
  
  <pre><code>FROM users Users 
  LEFT JOIN userinfos Userinfos ON Userinfos.id = (Users.userinfo_id) 
  INNER JOIN offices Offices ON Offices.id = (Userinfos.office_id)
  </code></pre>
  
  <hr>
  
  <p>ok, I have a database (MySQL) setup with CakePHP 3 the users table has extended information held within another table. </p>
  
  <p>This other table is also extended with an office / address information however this is set to NULL by default, so I want to include it in a 'contain' call but dose not return the user data when its empty?</p>
  
  <p>So this is what I use currently,</p>
  
  <pre><code>  $UsersTable-&gt;find('all')
               -&gt;contain(['Userinfos','Userinfos.Offices'])
               -&gt;toArray();
  </code></pre>
  
  <p>But, Offices (office_id field in table Usersinfos) is not always set, however I still want it to return all the users even if they don't have an office set.</p>
  
  <p>So I have tried,</p>
  
  <pre><code>  $UsersTable-&gt;find('all')
               -&gt;contain([
                    'Userinfos',
                    'Userinfos.Offices'
                ])
               -&gt;where(['Userinfos.office_id IS' =&gt; NULL])
               -&gt;toArray();
  </code></pre>
  
  <p>Also, </p>
  
  <pre><code>  $UsersTable-&gt;find('all')
               -&gt;contain([
                    'Userinfos',
                    'Userinfos.Offices' =&gt; 
                            function($q) {
                               return $q-&gt;where(['Userinfos.office_id IS' =&gt; NULL]);
                            }
                ])
              -&gt;toArray();
  </code></pre>
  
  <p>The <code>$UsersTable</code> var is set to</p>
  
  <pre><code>   $UsersTable = TableRegistry::get('Users');
  </code></pre>
  
  <p>If I remove the <code>Userinfos.Offices</code> from the contain condition, then it returns all my current users. However, how can I call in this extra data/information so I have access to the Office information, e.g location name if that is set?</p>
  
  <p>*I may not have explain myself clearly, please let me know if there is anything I can explain better, thanks.</p>