ElementSymbol b = new ElementSymbol("b"); //$NON-NLS-1$
ElementSymbol c = new ElementSymbol("c"); //$NON-NLS-1$
List crits = new ArrayList();
crits.add(new CompareCriteria(a, CompareCriteria.EQ, b));
JoinPredicate jp = new JoinPredicate(new UnaryFromClause(g1), new UnaryFromClause(g2), JoinType.JOIN_INNER, crits);
jp.getLeftClause().setMakeNotDep(true);
List crits2 = new ArrayList();
crits2.add(new CompareCriteria(a, CompareCriteria.EQ, c));
JoinPredicate jp2 = new JoinPredicate(jp, new UnaryFromClause(g3), JoinType.JOIN_LEFT_OUTER, crits2);
jp2.getRightClause().setMakeNotDep(true);
From from = new From();
from.addClause(jp2);
Select select = new Select();