function constructTree2() {
  var queryContext = new lf.query.SelectContext(hr.db.getSchema());
  queryContext.from = [e, j];
  queryContext.where = lf.op.and(
      e.id.gt('100'),
      e.salary.eq(10000),
      j.id.gt('100'),
      j.maxSalary.eq(1000),
      j.id.eq(e.jobId));

  // Constructing left sub-tree.
  var selectNode1 = createSelectStep(queryContext, 0);
  var orderByNode1 = new lf.proc.OrderByStep(
      [{column: e.salary, order: lf.Order.ASC}]);
  var selectNode2 = createSelectStep(queryContext, 1);
  var tableAccessNode1 = new lf.proc.TableAccessFullStep(
      hr.db.getGlobal(), queryContext.from[0]);

  selectNode1.addChild(orderByNode1);
  orderByNode1.addChild(selectNode2);
  selectNode2.addChild(tableAccessNode1);

  // Constructing right sub-tree.
  var selectNode3 = createSelectStep(queryContext, 2);
  var orderByNode2 = new lf.proc.OrderByStep(
      [{column: j.title, order: lf.Order.ASC}]);
  var selectNode4 = createSelectStep(queryContext, 3);
  var tableAccessNode2 = new lf.proc.TableAccessFullStep(
      hr.db.getGlobal(), queryContext.from[1]);

  selectNode3.addChild(orderByNode2);
  orderByNode2.addChild(selectNode4);
  selectNode4.addChild(tableAccessNode2);

  // Constructing the overall tree.
  var rootNode = new lf.proc.ProjectStep([], null);
  var orderByNode3 = new lf.proc.OrderByStep(
      [{column: e.salary, order: lf.Order.ASC}]);
  var joinPredicate = /** @type {!lf.pred.JoinPredicate} */ (
      /** @type {!lf.pred.PredicateNode} */ (
          queryContext.where).getChildAt(4));
  var joinNode = new lf.proc.JoinStep(hr.db.getGlobal(), joinPredicate, false);

  rootNode.addChild(orderByNode3);
  orderByNode3.addChild(joinNode);
  joinNode.addChild(selectNode1);
  joinNode.addChild(selectNode3);

  return {
    queryContext: queryContext,
    root: rootNode
  };
}
Constructs a tree where:
 - Two TableAccessFullStep nodes exist.
 - Multiple SelectStep nodes per TableAcessFullStep node exist.
 - SelectStep nodes are separated by an OrderByStep node in between them.
@return {lf.testing.treeutil.Tree} The constructed tree and corresponding
    query context.