Queryでテーブル結合(Join)を行うには、
joinMode の設定をします。

    Query                    query = new Query();
    QueryBuildDataSource     queryBuildDSSalesTable;
    QueryBuildDataSource     queryBuildDSSalesLine;
    QueryBuildRange          queryBuildRange;
    QueryRun                 queryRun;
    SalesLine                salesLine;
    SalesTable               salesTable;
    ;
   
    // Setup the primary datasource.
    queryBuildDSSalesTable  = query.addDataSource(tablenum(SalesTable));
    queryBuildDSSalesTable.addRange(fieldnum(SalesTable,SalesId)).value('00001_036');

    // Setup the secondary (joined) datasource.
    queryBuildDSSalesLine   = queryBuildDSSalesTable.addDataSource(tablenum(SalesLine));
    queryBuildDSSalesLine.joinMode(JoinMode::InnerJoin);
    queryBuildDSSalesLine.relations(true);
    queryRun = new QueryRun(query);
    while(queryRun.next())
    {
        salesTable  = queryRun.get(tablenum(SalesTable));
        salesLine   = queryRun.get(tablenum(SalesLine));
        info(strfmt('%1 %2', salesTable.SalesId, salesLine.Name));
    }

※SalesLineには、SalesIdをキーにした
 SalesTableへのリレーションが存在する。

最終更新:2012年06月01日 14:49