diff options
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r-- | lib/sqlalchemy/sql.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 450d10567..92fd76123 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -299,7 +299,13 @@ class Join(Selectable): return self.left._engine() or self.right._engine() def _get_from_objects(self): - result = [self] + [FromClause(from_key = c.id) for c in self.left._get_from_objects() + self.right._get_from_objects()] + m = {} + for x in self.onclause._get_from_objects(): + m[x.id] = x + result = [self] + [FromClause(from_key = c.id) for c in self.left._get_from_objects() + self.right._get_from_objects()] + for x in result: + m[x.id] = x + result = m.values() return result class Alias(Selectable): |