sql >> Base de Datos >  >> RDS >> Mysql

Cómo unir dos tablas con ssp.class.php

Como PaulF señaló, necesita usar JOIN o sub-consulta para recuperar el nombre del padre de la misma tabla.

Supongo que estás usando ssp.class.php para procesar sus datos en el lado del servidor según el ejemplo que ha mencionado.

Clase ssp.class.php no admite uniones y subconsultas, pero hay una solución. El truco es usar una subconsulta como se muestra a continuación en $table definición. Reemplazar table con su nombre de tabla real en la subconsulta.

$table = <<<EOT
 (
    SELECT 
      a.id, 
      a.name, 
      a.father_id, 
      b.name AS father_name
    FROM table a
    LEFT JOIN table b ON a.father_id = b.id
 ) temp
EOT;

$primaryKey = 'id';

$columns = array(
   array( 'db' => 'id',          'dt' => 0 ),
   array( 'db' => 'name',        'dt' => 1 ),
   array( 'db' => 'father_id',   'dt' => 2 ),
   array( 'db' => 'father_name', 'dt' => 3 )
);

$sql_details = array(
   'user' => '',
   'pass' => '',
   'db'   => '',
   'host' => ''
);

require( 'ssp.class.php' );
echo json_encode(
   SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

También necesita editar ssp.class.php y reemplace todas las instancias de FROM `$table` con FROM $table para eliminar los acentos graves.

Asegúrese de que todos los nombres de columna sean únicos; de lo contrario, use AS para asignar un alias.

NOTAS

También hay github.com/emran/ssp repositorio que contiene ssp.class.php mejorado apoyando JOINs.

ENLACES

Consulte jQuery DataTables:Usando DONDE, ÚNETE y AGRUPA POR con ssp.class.php para más información.