sql >> Database teknologi >  >> RDS >> Mysql

Sådan forbinder du to tabeller med ssp.class.php

Som PaulF påpeget, skal du bruge JOIN eller underforespørgsel for at hente fars navn fra den samme tabel.

Jeg går ud fra, at du bruger ssp.class.php at behandle dine data på serversiden baseret på det eksempel, du har nævnt.

Klasse ssp.class.php understøtter ikke joinforbindelser og underforespørgsler, men der er en løsning. Tricket er at bruge underforespørgsel som vist nedenfor i $table definition. Erstat table med dit faktiske tabelnavn i underforespørgslen.

$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 )
);

Du skal også redigere ssp.class.php og erstat alle forekomster af FROM `$table` med FROM $table for at fjerne backticks.

Sørg for, at alle kolonnenavne er unikke, ellers brug AS for at tildele et alias.

NOTER

Der er også github.com/emran/ssp repository, der indeholder forbedret ssp.class.php understøtter JOINs.

LINKS

Se jQuery DataTables:Brug af WHERE, JOIN og GROUP BY med ssp.class.php for mere information.



  1. TypeScript-fejl ved brug af Op.between i Sequelize with Dates

  2. LINQ til SQL Take w/o Skip Årsager Flere SQL-sætninger

  3. kan ikke øge open-files-limit i mariadb 10 på centos7

  4. mysqli sidste indsættelses-id