title: PostgreSQL: update with left outer self join ignored
body: <p>I want to update the column <code>leaf_category</code> with <code>TRUE</code> where the category is not a parent category. It works as a select statement:</p>
  
  <pre><code> select 
       c1.id, c1.name, c1.slug, c1.level, c2.parent_id, c2.name, c2.slug, c2.level 
   from
       catalog_category c1 
   left outer join 
       catalog_category c2 on 
       (c1.id = c2.parent_id)
   where 
       c2.parent_id is null;
  </code></pre>
  
  <p>However, the corresponding <code>UPDATE</code> sets all the columns to <code>TRUE</code>.</p>
  
  <pre><code>update catalog_category 
  set leaf_category = True
  from
      catalog_category c1 
  left outer join 
      catalog_category c2 on 
      (c1.id = c2.parent_id)
   where 
       c2.parent_id is null;
  </code></pre>
  
  <p>Is an <code>UPDATE</code> like that possible at all?</p>