在我的特定情况下,我无法找到有关动态引用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
Retrieve parent-child hierarchy from a self-referencing mysql table