diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java index cbd226f0471bf3d69eaa3f5ba06a38ac978fd838..ce18c9c667525d6e87090e0b7f0a55675228c8a5 100644 --- a/src/main/java/org/caosdb/server/query/Query.java +++ b/src/main/java/org/caosdb/server/query/Query.java @@ -639,19 +639,20 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac + baseStatement + "( AS tmp JOIN entity_version ON entity_version.entity_id=tmp.id;"); } else { - final String baseStatement = - (" SELECT tmp.id, entity_acl.acl, _iversion FROM " - + " (SELECT results.id AS id, entities.acl AS acl_id, _iversion FROM `" - + resultSetTableName - + "` AS results JOIN entities ON results.id=entities.id) AS tmp" - + " JOIN entity_acl ON entity_acl.id=tmp.acl_id"); if (!versioned) { - return baseStatement + ";"; + return (" SELECT tmp.id, entity_acl.acl FROM " + + " (SELECT results.id AS id, entities.acl AS acl_id FROM `" + + resultSetTableName + + "` AS results JOIN entities ON results.id=entities.id) AS tmp" + + " JOIN entity_acl ON entity_acl.id=tmp.acl_id") + + ";"; } // if versioned, the statement is surrounded with another SELECT and JOIN - return ("SELECT tmp2.id, acl, version FROM(" - + baseStatement - + ") as tmp2 " + return ("SELECT tmp2.id, acl, version FROM( SELECT tmp.id, entity_acl.acl, tmp._iversion AS _iversion FROM " + + " (SELECT results.id AS id, entities.acl AS acl_id, results._iversion AS _iversion FROM `" + + resultSetTableName + + "` AS results JOIN entities ON results.id=entities.id) AS tmp" + + " JOIN entity_acl ON entity_acl.id=tmp.acl_id) as tmp2 " + "join entity_version on (entity_version.entity_id=tmp2.id AND tmp2._iversion = entity_version._iversion);"); } }