Php 查找上次查询的表的名称

Php 查找上次查询的表的名称,php,mysql,sql,Php,Mysql,Sql,我在PHP程序中有一个查询,如 SELECT table_a.firstname, table_a.lastname, table_b.english_score, table_b.maths_score FROM table_a INNER JOIN table_b ON table_b.student_id = table_a.id WHERE table_a.id = 21 我想知道在这个查询中调用的表的名称,包括连接的表。目的是找到受影响表的模式,以便进一步操作 是否有直接查询来执

我在PHP程序中有一个查询,如

SELECT table_a.firstname, table_a.lastname, table_b.english_score, table_b.maths_score 
FROM table_a
INNER JOIN table_b ON table_b.student_id = table_a.id 
WHERE table_a.id = 21
我想知道在这个查询中调用的
表的名称,
包括连接的表
。目的是找到受影响表的模式,以便进一步操作


是否有直接查询来执行此操作,或者我必须使用一些正则表达式?

您可以检索查询的执行计划,其中包括查询中涉及的所有表

例如:

create table a (b int);

create table c (d int);

explain
select a.*
from a
join c on c.d = a.b
结果:

id  select_type  table  partitions  type  pos_keys key   key_len  ref   rows  filt Extra         
--- ------------ ------ ----------- ----- -------- ----- -------- ----- ----- ---- ------------- 
1   SIMPLE       a      null        ALL   null     null  null     null  1     100  null          
1   SIMPLE       c      null        ALL   null     null  null     null  1     100  Using where.. 
在这里,您可以看到第三列包含查询中涉及的表的名称。执行计划采用表格格式(默认)或JSON格式。后者比这一个有更多的信息


您可以在中看到正在运行的示例。

难道您不能从
from
子句中读取它们吗?但是,我还需要
JOIN
子句中的名称来检索执行计划。它包括查询中涉及的所有表。@TheImpler,如果您能以某种方式向我展示一些代码片段,它将对我有所帮助。事实上,我不知道it@Chilarai . . . <代码>联接
不是“子句”。它是
FROM
子句中的运算符。请记住,简单的表格形式在出现时会显示表格的“别名”。也许你应该探索更完整的JSON格式。我会看到它