diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index a087c403ea..fe967c66a2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -1851,8 +1851,8 @@ final class SelectQueryImpl extends AbstractResultQuery imp private final >> Q resolveAsterisk(Q result) { - // [#109] [#489]: SELECT * is only applied when at least one table - // from the table source is "unknown", i.e. not generated from a + // [#109] [#489] [#7231]: SELECT * is only applied when at least one + // table from the table source is "unknown", i.e. not generated from a // physical table. Otherwise, the fields are selected explicitly if (knownTableSource()) for (TableLike table : getFrom()) @@ -1876,7 +1876,10 @@ final class SelectQueryImpl extends AbstractResultQuery imp } private final boolean knownTable(Table table) { - return table.fieldsRow().size() > 0; + if (table instanceof JoinTable) + return knownTable(((JoinTable) table).lhs) && knownTable(((JoinTable) table).rhs); + else + return table.fieldsRow().size() > 0; } @SuppressWarnings("unchecked")