administrador.base.orm.columnas.sub_query_str - gamboamartin/administrador GitHub Wiki
sub_query_str
La función sub_query_str
es una función privada que construye una subconsulta SQL agregándole un alias. Esta función valida tanto la subconsulta como el alias, asegurando que ambos sean proporcionados correctamente antes de concatenarlos en una cadena SQL válida.
Signatura
private function sub_query_str(string $alias, string $sub_query): string|array
Parámetros
-
string $alias
:
El alias que se asignará a la subconsulta en la sentencia SQL. Este alias es esencial para referenciar la subconsulta en otras partes de la consulta SQL. -
string $sub_query
:
La subconsulta SQL que se va a ejecutar. Debe ser una consulta válida que se pueda ejecutar de forma independiente o en combinación con otras partes de una consulta mayor.
Retorno
string|array
:
Retorna una cadena que representa la subconsulta SQL con el alias asignado. En caso de error (si la subconsulta o el alias están vacíos), retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
Validación de la subconsulta:
- La función limpia la subconsulta proporcionada (
$sub_query
) utilizandotrim()
para eliminar espacios en blanco al inicio y al final. - Si la subconsulta queda vacía después de aplicar
trim()
, se genera un error indicando que la subconsulta está vacía y se retorna un array con el mensaje de error.
- La función limpia la subconsulta proporcionada (
-
Validación del alias:
- La función limpia el alias proporcionado (
$alias
) utilizandotrim()
para eliminar espacios en blanco al inicio y al final. - Si el alias queda vacío después de aplicar
trim()
, se genera un error indicando que el alias está vacío y se retorna un array con el mensaje de error.
- La función limpia el alias proporcionado (
-
Construcción de la subconsulta con alias:
- Si ambas validaciones son exitosas, la función concatena la subconsulta con el alias utilizando la sintaxis SQL
AS
y retorna la cadena resultante.
- Si ambas validaciones son exitosas, la función concatena la subconsulta con el alias utilizando la sintaxis SQL
Ejemplos
$alias = 'sub_consulta_usuarios';
$sub_query = '(SELECT id FROM usuarios WHERE activo = 1)';
$resultado = $this->sub_query_str($alias, $sub_query);
// Resultado esperado:
// '(SELECT id FROM usuarios WHERE activo = 1) AS sub_consulta_usuarios'
// Un array de error si la subconsulta o el alias están vacíos.
Código de la Función
private function sub_query_str(string $alias, string $sub_query): string|array
{
$sub_query = trim($sub_query);
if($sub_query === ''){
return $this->error->error(mensaje: 'Error sub_query esta vacio ', data: $sub_query, es_final: true);
}
$alias = trim($alias);
if($alias === ''){
return $this->error->error(mensaje: 'Error alias esta vacio ', data: $alias, es_final: true);
}
return $sub_query . ' AS ' . $alias;
}