Mysql
 sql >> Base de données >  >> RDS >> Mysql

Enumérer les tables utilisées dans la requête mysql ?

Oui, vous pouvez obtenir des informations sur les tables et les colonnes qui font partie d'un résultat de requête. C'est ce qu'on appelle les métadonnées de l'ensemble de résultats .

La seule solution PHP pour les métadonnées de l'ensemble de résultats MySQL consiste à utiliser l'extension MySQLi et le mysqli_stmt::result_metadata() fonction.

$stmt = $mysqli->prepare("SELECT * FROM   db_people.people_facts pf
  INNER JOIN db_system.connections sm ON sm.source_id = pf.object_id
  INNER JOIN db_people.people p ON sm.target_id = p.object_id
  ORDER BY pf.object_id DESC");

$meta = $stmt->result_metadata();

$field1 = $meta->fetch_field();

echo "Table for field " . $field1->name . " is " . $field1->table . "\n";

Vous devrez créer vous-même le tableau de tables distinctes utilisées dans la requête, en bouclant les champs.