- the first table does not need a /** @type {QBJoin<db:/hades/profile_positions>} */ statement (the other do)
- if there is a way to use the relation (or table) alias instead of defining a prefix for the query.columns (in this example the same as for the table) ?
- I noticed when using a relation for a join it's always done as a LEFT OUTER JOIN, correct?
- Code: Select all
var query = datasources.db.hades.profile_positions.createSelect();
var pp = query.columns;
query.result
.addPk();
/** @type {QBJoin<db:/hades/persons>} */
var join1 = query.joins.add('profile_positions_part_of_an_educational_description_for_persons', 'p');
var p = join1.columns;
/** @type {QBJoin<db:/hades/class_members>} */
var join2 = query.joins.add('_profile_positions_a_party_to_class_members', 'cm');
var cm = join2.columns;
query.where
.add(pp.period_school_year.eq(scopes.globals.plcSelectedPeriod.split(' ')[1]))
.add(pp.period_fraction_name.eq(scopes.globals.plcSelectedPeriod.split(' ')[0]))
.add(pp.profile_definition_level_number.eq(scopes.globals.plcSelectedClass.split(' ')[0]))
.add(cm.class_sign.eq(scopes.globals.plcSelectedClass.split(' ')[3]))
.add(pp.profile_definition_subject_code.eq(scopes.globals.plcSelectedSubjectCode))
.add(pp.profile_definition_subject_type_code.eq(scopes.globals.plcSelectedSubjectTypeCode));
query.sort
.add(p.name.asc)
.add(p.first_name.asc);
var dataset = databaseManager.getDataSetByQuery(query, -1);
foundset.loadRecords(dataset);
Thanks for clarifying.
Regards,