title: sql left join: always return left table columns, no matter the condition
body: <p>I've got two tables:</p>
  
  <h3>account_settings</h3>
  
  <p>This table uses the settings.id field as an FK to store the users custom settings (the settings table below has the name of the setting and the default value)</p>
  
  <pre><code>    Column    |           Type           |                           Modifiers
  --------------+--------------------------+---------------------------------------------------------------
   id           | integer                  | not null default nextval('account_settings_id_seq'::regclass)
   user_id      | uuid                     | not null
   setting_id   | integer                  | not null
   value        | text                     |
  </code></pre>
  
  <h3>settings:</h3>
  
  <p>This table holds all the available settings. E.g weekly_email, app_notifications, block_user, etc...It also holds the default value for each of them.</p>
  
  <pre><code>     Column     |           Type           |                       Modifiers
  ----------------+--------------------------+-------------------------------------------------------
   id             | integer                  | not null default nextval('settings_id_seq'::regclass)
   key            | text                     | not null
   frontend_label | text                     |
   default_value  | text                     |
  </code></pre>
  
  <p>I'm using the property bag schema design to store user settings for our app! It will include notification settings, email settings, etc...</p>
  
  <p>Is it possible to have a query that always returns the <code>settings</code> columns, even when you add a where statement in there (the where statement is there for querying for the account_settings by user_id)? </p>
  
  <p>I'm trying to get an accounts customs settings, as well as the LEFT JOIN the <code>settings</code> table for the default values &amp; labels.</p>
  
  <p>Here is what I have now:</p>
  
  <pre><code>select account_settings.*, settings.* from settings 
  LEFT JOIN account_settings 
  ON settings.id = account_settings.id 
  where account_settings.user_id = 'UUID_HERE';
  </code></pre>
  
  <p>This won't return the the settings table values though! It will only return the settings values if the settings.id column is referenced in the account_settings.setting_id column.</p>