是否可以动态引用MySQL表?

时间:2017-10-25 19:00:31

标签: php android mysql

在我的特定情况下,我无法找到有关动态引用MySQL表条目的任何信息。我读过的大多数内容都倾向于不可能,但我希望有人可以证明我是错的。

基本上,我有多个MySQL表,我试图从Android应用程序中提取数据。我想一次访问2个。第一个表的名称始终保持不变,历史记录。但是,第二个表的名称有时可能不同。它的值在应用程序中确定,并在我的php脚本中用:job 引用(我将使用 moon 作为我的示例)。第二个表本身是通过应用程序动态生成的,所以我想我试图在我保存到服务器的php脚本中设置引用,以便我可以访问第二个表。

对于令人困惑的描述感到抱歉,我希望这些表格能够帮助解释我想要达到的目标。

表#1:历史记录(始终保持不变)

|  site   |   code  | hours|
|---------|---------|------|
|  moon   |  first  |   1  |
|  moon   | second  |   2  |
|  moon   |  third  |   3  |
|  earth  |  fourth |   4  |

表#2:月亮(这个我想动态参考)

|   code  | hours|
|---------|------|
|  first  |  10  |
| second  |  11  |
|  third  |  12  |

我目前的代码:

...
/*** Table #1 ***/
SELECT code, 
SUM(hours) AS total, '' AS target
FROM history 
WHERE site = :job  /* :job ends up being moon in this example */
GROUP BY code

UNION ALL

/*** Table #2 ***/
SELECT code, 
'' AS total, SUM(hours) AS target
FROM :job  /* <--- I'm trying to do something along these lines and use 'moon', or 'earth', or whatever... */
GROUP BY code

...

后来我得到了:app中的工作: moon

$query_params = array(
':job' => $_POST['jobname'],
);

结果我正在寻找:(如果我在我的php文件中直接使用表#2的名称(即 moon ),则效果很好)

|   code  | hours|target|
|---------|------|------|
|  first  |   1  |  10  |
| second  |   2  |  11  |
|  third  |   3  |  12  |

当我将第二个表中的:job替换为表的实际名称时,代码绝对按预期工作。我想知道是否还有某种方法可以动态地进行动作呢?

感谢您提供任何建议!

我已经做了一些非常广泛的搜索,并没有想出任何对我有用的东西。

Is it possible to reference a mysql table entry value from a second table entry dynamically?

https://dev.mysql.com/doc/refman/5.7/en/derived-tables.html

MySQL table.* AS reference

Retrieve parent-child hierarchy from a self-referencing mysql table

0 个答案:

没有答案