title: Error when performing a join in SQLAlchemy 'Please specify the 'onclause' of this join explicitly.'
body: <p>I have the following sqlalchemy model using flask-sqlalchemy. I have 3 talentpref items in my schedule model. There will always need to be 3 and no fewer. </p>
  
  <pre><code>class TalentPref(db.Model):
      __tablename__ = 'talentpref'
      id = db.Column(db.Integer, primary_key=True)
      firstName = db.Column(db.String(80), unique=True)
      lastName = db.Column(db.String(80), unique=True)
  
      def __init__(self, firstName, lastName):
          self.firstName = firstName
          self.lastName = lastName
  
      def __repr__(self):
          return '&lt;talentpref %r %r&gt;' % (self.firstName, self.lastName)
  
  class Schedule(db.Model):
      __tablename__ = 'schedule'
  
      id = db.Column(db.Integer, primary_key=True)
  
      talentpref1_id = db.Column(db.Integer, db.ForeignKey('talentpref.id'))
      talentpref2_id = db.Column(db.Integer, db.ForeignKey('talentpref.id'))
      talentpref3_id = db.Column(db.Integer, db.ForeignKey('talentpref.id'))
  
      talentpref1 = db.relationship("TalentPref", uselist=False, foreign_keys=talentpref1_id)
      talentpref2 = db.relationship("TalentPref", uselist=False, foreign_keys=talentpref2_id)
      talentpref3 = db.relationship("TalentPref", uselist=False, foreign_keys=talentpref3_id)
  </code></pre>
  
  <p>I am using flask-restless to serve the schedule model as an api resource. When I perform a query on schedule and ask to sort my query by talentpref1__lastName, I receive an error which is related to my having multiple instances that refer to the "TalentPref" table:</p>
  
  <p>I can use a query string successfully on the id column, like so:</p>
  
  <pre><code>/api/schedule?id=id&amp;page=1&amp;q={"order_by":[{"field":"id","direction":"desc"}]}
  </code></pre>
  
  <p>But a query using the following http GET query string fails:</p>
  
  <pre><code>/api/schedule?id=id&amp;page=1&amp;q={"order_by":[{"field":"talentpref1__lastName","direction":"desc"}]}
  </code></pre>
  
  <p>with:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/flask_restless/views.py", line 1172, in _search
      result = search(self.session, self.model, search_params)
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/flask_restless/search.py", line 587, in search
      query = create_query(session, model, search_params, _ignore_order_by)   
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/flask_restless/search.py", line 549, in create_query
      _ignore_order_by)
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/flask_restless/search.py", line 498, in create_query
      query = query.join(relation_model)
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 1971, in join
      from_joinpoint=from_joinpoint)
    File "&lt;string&gt;", line 2, in _join
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/sqlalchemy/orm/base.py", line 201, in generate
      fn(self, *args[1:], **kw)
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2115, in _join
      outerjoin, full, create_aliases, prop)
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2188, in _join_left_to_right
      self._join_to_left(l_info, left, right, onclause, outerjoin, full)   
    File "/Users/myuser/Documents/pythonenvironments/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2317, in _join_to_left
      "Tried joining to %s, but got: %s" % (right, ae))
  
  InvalidRequestError: Could not find a FROM clause to join from.  Tried
  joining to &lt;class 'app.model.TalentPref'&gt;, but got: Can't determine
  join between 'schedule' and 'talentpref'; tables have more than one
  foreign key constraint relationship between them. Please specify the
  'onclause' of this join explicitly.
  </code></pre>
  
  <p>Is there a way I can query this relationship successfully?</p>