sql >> Databáze >  >> RDS >> Mysql

Jak spojit dvě tabulky pomocí ssp.class.php

Jako PaulF je třeba použít JOIN nebo dílčí dotaz pro získání jména otce ze stejné tabulky.

Předpokládám, že používáte ssp.class.php zpracovávat vaše data na straně serveru na základě příkladu, který jste zmínili.

Třída ssp.class.php nepodporuje spojení a dílčí dotazy, ale existuje řešení. Trik je v použití dílčího dotazu, jak je ukázáno níže v $table definice. Nahraďte table s vaším skutečným názvem tabulky v dílčím dotazu.

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

Musíte také upravit ssp.class.php a nahradit všechny výskyty FROM `$table` pomocí FROM $table k odstranění zpětných zaškrtnutí.

Ujistěte se, že všechny názvy sloupců jsou jedinečné, jinak použijte AS přiřadit alias.

POZNÁMKY

Existuje také github.com/emran/ssp úložiště, které obsahuje vylepšený ssp.class.php podporující JOINy.

ODKAZY

Viz jQuery DataTables:Použití WHERE, JOIN a GROUP BY pomocí ssp.class.php pro více informací.



  1. Spojte dva sloupce a přidejte je do jednoho nového sloupce

  2. MySQL fulltextové vyhledávání s částečnými slovy

  3. Dynamicky vytvářet PHP objekt založený na řetězci

  4. Kurz transakcí SQL