diff options
Diffstat (limited to 'sqlglot/optimizer/scope.py')
-rw-r--r-- | sqlglot/optimizer/scope.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sqlglot/optimizer/scope.py b/sqlglot/optimizer/scope.py index bc649e4..7dcfb37 100644 --- a/sqlglot/optimizer/scope.py +++ b/sqlglot/optimizer/scope.py @@ -548,9 +548,6 @@ def _traverse_scope(scope): yield from _traverse_union(scope) elif isinstance(scope.expression, exp.Subquery): yield from _traverse_subqueries(scope) - elif isinstance(scope.expression, exp.Table): - # This case corresponds to a "join construct", i.e. (tbl1 JOIN tbl2 ON ..) - yield from _traverse_tables(scope) elif isinstance(scope.expression, exp.UDTF): pass else: @@ -632,8 +629,9 @@ def _traverse_tables(scope): if from_: expressions.append(from_.this) - for join in scope.expression.args.get("joins") or []: - expressions.append(join.this) + for expression in (scope.expression, *scope.find_all(exp.Table)): + for join in expression.args.get("joins") or []: + expressions.append(join.this) if isinstance(scope.expression, exp.Table): expressions.append(scope.expression) |