fetchColumns = fetchGroup.getColumns();
Column column;
Iterator i = fetchGroup.getSubgroupColumns().iterator();
while (i.hasNext()) {
column = (Column) i.next();
DataFetchGroup subgroup = fetchGroup.getSubgroup(column);
// Find or create the Selector for the subgroup
Selector selector = findSelector(condition, subgroup.getTable());
if (selector == null) {
selector = new Selector(subgroup.getTable(), null);
selector.outerJoin = !column.isNonNull();
Condition join = new SimpleCondition
(column, Operator.EQUAL, selector);
if (condition != null) {
condition = new AndCondition(join, condition);