Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Enumerando tabelas usadas na consulta mysql?


Sim, você pode obter informações sobre tabelas e colunas que fazem parte de um resultado de consulta. Isso é chamado de metadados do conjunto de resultados .

A única solução PHP para metadados do conjunto de resultados do MySQL é usar a extensão MySQLi e o mysqli_stmt::result_metadata() função.
$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";

Você terá que construir a matriz de tabelas distintas usadas na consulta, fazendo um loop pelos campos.