selfJoin method
Transaction
selfJoin(
- dynamic baseColumnName,
- dynamic columnName, {
- dynamic function(
- Transaction trx,
- String tableName,
- String baseTableName
- 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;
}