join method

Transaction join(
  1. dynamic tableName, {
  2. dynamic tableTargetName,
  3. dynamic columnName,
  4. dynamic baseColumnName,
  5. dynamic function(
    1. Transaction query
    )?,
})

Implementation

Transaction join(tableName, {tableTargetName, columnName, baseColumnName, Function(Transaction query)? function}) {
  final trans = Transaction(
    select: select,
    data: data,
    limit: limit,
    listData: listData,
    orderBy: orderBy,
    where: where,
    joinQuery: joinQuery,
    groupBy: groupBy,
  );
  String q = ' INNER JOIN $tableName ON ';
  if (function != null) {
    trans.joins ??= [];
    function(trans);

    for (int i = 0; i < trans.joins!.length; i++) {
      q += (trans.joins![i].tableName ?? tableName) + '.' + trans.joins![i].columnName;
      q += '=';
      q += (trans.joins![i].tableTarget ?? '{NO_SELECTED_TABLE_NAME}') + '.' + (trans.joins![i].columnBase ?? '');
      if (i + 1 < trans.joins!.length) {
        q += ' AND ';
      }
    }
  } else {
    q += tableName + '.' + columnName;
    q += '=';
    q += (tableTargetName ?? '{NO_SELECTED_TABLE_NAME}') + '.' + baseColumnName;
  }
  trans.joinQuery += q + ' ';
  return trans;
}