title: In sqlalchemy, how can I combine two queries by having a column entry identical?
body: <p>Suppose I have a mapped class <code>User</code>, mapped to a tables of the same name, and a column "age" for his age.
  I'm now interested in the following problem:</p>
  
  <p>In the course of my application, there emerge two queries:</p>
  
  <pre><code>q1 = session.query(User).filter(lots of conditions)
  q2 = session.query(User).filter(lots of other conditions)
  </code></pre>
  
  <p>I now want to "join" q2 onto q1 upon the condition that they have the same age.
  But I have no idea of how this might work. I tried the following without success:</p>
  
  <pre><code>q1.join(q2.subquery(), q1.age==q2.age) # the query doesn't hold the columns of the queried class
  q1.join(Age).join(q2.subquery()) # Works only if age is a relationship with mapped class Age
  </code></pre>
  
  <p>My closest calls were something like this:</p>
  
  <pre><code>a1 = aliased(User)
  a2 = aliased(User)
  q1 = session.query(a1)
  q2 = session.query(a2)
  s = q2.subquery()
  q1.join(s, a1.age==a2.age).all()
  &gt;&gt;&gt; sqlalchemy.exc.OperationalError: (OperationalError) no such column: user_2.age 'SELECT user_1.id AS user_1_id, user_1.name AS user_1_name, user_1.age AS user_1_age \nFROM user AS user_1 JOIN (SELECT user_2.id AS id, user_2.name AS name, user_2.age AS age \nFROM user AS user_2) AS anon_1 ON user_1.age = user_2.age' ()
  </code></pre>
  
  <p>Any ideas about how to make this run?</p>