selfJoin method

Transaction selfJoin(
  1. dynamic baseColumnName,
  2. dynamic columnName, {
  3. dynamic function(
    1. Transaction trx,
    2. String tableName,
    3. String baseTableName
    )?,
  4. JoinType? join,
})

Implementation

Transaction selfJoin(baseColumnName, columnName, {Function(Transaction trx, String tableName, String baseTableName)? function, JoinType? join}) {
  final trans = Transaction(
    select: select,
    data: data,
    limit: limit,
    listData: listData,
    orderBy: orderBy,
    where: where,
    joinQuery: joinQuery,
    groupBy: groupBy,
  );
  final rand = getRandomString(9);
  String joinType = 'INNER JOIN';
  if (join == JoinType.left) {
    joinType = 'LEFT JOIN';
  } else if (join == JoinType.cross) {
    joinType = 'CROSS JOIN';
  }
  String q = ' $joinType {NO_SELECTED_TABLE_NAME} $rand ON ';
  q += rand + '.' + columnName;
  q += '=';
  q += ('{NO_SELECTED_TABLE_NAME}') + '.' + baseColumnName;

  if (function != null) {
    /// Select

    function(trans, rand, '{NO_SELECTED_TABLE_NAME}');
  }

  trans.joinQuery += q + ' ';
  return trans;
}