Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć dwa stoły za pomocą ssp.class.php

Jako PaulF wskazał, musisz użyć JOIN lub podzapytanie, aby pobrać imię ojca z tej samej tabeli.

Zakładam, że używasz ssp.class.php do przetwarzania danych po stronie serwera na podstawie przykładu, o którym wspomniałeś.

Klasa ssp.class.php nie obsługuje sprzężeń i podzapytań, ale istnieje obejście tego problemu. Sztuczka polega na użyciu podzapytania, jak pokazano poniżej w $table definicja. Zastąp table z rzeczywistą nazwą tabeli w podzapytaniu.

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

Musisz także edytować ssp.class.php i zamień wszystkie wystąpienia FROM `$table` z FROM $table aby usunąć backticks.

Upewnij się, że wszystkie nazwy kolumn są unikalne, w przeciwnym razie użyj AS aby przypisać alias.

UWAGI

Istnieje również github.com/emran/ssp repozytorium zawierające ulepszony ssp.class.php wspieranie JOIN.

LINKI

Zobacz jQuery DataTables:Używanie WHERE, JOIN i GROUP BY z ssp.class.php aby uzyskać więcej informacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć wartość logiczną z pliku PHP do pliku AJAX - przycisk Śledź

  2. SELECT INTO i Niezadeklarowany błąd zmiennej

  3. UPDATE składnia z ORDER BY, LIMIT i wieloma tabelami

  4. Dane open source rosną:wybór MySQL, NoSQL lub obu

  5. Alias ​​MySQL dla kolumn SELECT *