【发布时间】:2021-07-12 01:49:02
【问题描述】:
在开始之前,我知道存在以下问题: Get an R dataframe with merged values from multiple MySQL tables 和 Best approach to combine multiple MySQL tables in R。但我不能用它们来解决我的问题。
我在 MySQL 数据库中有一个模式列表(比如说 80 个模式),具有特定的 ProductID,例如 shj637、jsfh748、hasd548 等。我添加了一个具有 的特定表>特定名称在所有这些模式中作为 ProductINFO (所以所有模式都有这个表)。其中它们都具有相同的列名称(如 ID、名称、产品组等),但行中的值不同。
我想做的是创建一个循环或一个函数,它将加载和union来自不同ProductINFO表>ProductID 架构,并使用所有包含其特定 ProductID 的信息(作为一列)创建一个数据框。
例如,如果:架构 A 带有 ProductID shj637 架构 B 带有 ProductID kly457 和 80 多个!他们都有一个名为 ProductINFO 的表。我要制作:
| ProductID | ID | group | otherstuff |
|---|---|---|---|
| shj637 | 1 | Q2 | ghafdj... |
| shj637 | 2 | Q4 | jhsdf... |
| shj637 | 3 | Q1 | jhfdl... |
| kly457 | 1 | Q2 | jshfd... |
| kly457 | 2 | Q4 | uiepc... |
| kly457 | 3 | Q1 | qapfn.. |
| .. for all 80 ProductID schemas |
这是表结构:
CREATE TABLE `productinfo` (
`ID` int(11) DEFAULT NULL,
`Question` text,
`Product Answer` double DEFAULT NULL,
`Product Code/Script (If Required)` test,
`Product Score/Mark` double DEFAULT NULL,
`Feedback` text,
`ProductID` text,
`database ID` text)
ENGINE=MyISAM DEFAULT CHARSET=latin1
提前谢谢你!
【问题讨论】:
-
模式表结构是什么样的?我假设所有 80 多个都是相同的。你能在其中一个模式上运行
SHOW CREATE TABLE table_name;并发布结果into your question吗? -
@FaNo_FN 是的,所有 80 多个模式都具有与我添加到问题中的结构相同的表。我只想将所有包含此表的模式合并。
-
您可以将创建表语法发布为文本而不是图像吗?这样我就可以轻松地复制和粘贴它并尝试创建场景。另外,我猜你想要一些东西(可能是一个查询),它可以扫描并找到所有要包含的表,而不必对表名进行硬编码,对吗?可能是动态查询?
-
@FaNo_FN 谢谢。修改它。是的;我想要的是获取所有具有相同名称的表并在数据框中有一个 UNION 但我仍然会有 SchemaID 或者在这种情况下是 ProductID 及其关联的行。正如您所说,我不想为所有 80 多个具有相同表名的模式硬编码此过程。
-
我可能会建议一个适用于 MySQL 的查询。巧合的是,我一直在使用
PREPARED STATEMENT构建动态查询,这将适用于大多数 MySQL 版本。我不熟悉R,所以我不确定你如何在那里使用它。如果你想试试,我可以提出建议。