【发布时间】:2011-01-07 21:30:27
【问题描述】:
我有两个现有的表,除了主 ID(varchar,不是int)外,它们具有不同的字段。我想创建第三个表,它本质上是这两个表的合并,这样对于给定的主键,我将所有字段都放在一个表中。
如何做到这一点?
【问题讨论】:
-
您确定要一个表(包含表中当前数据的快照,并且不会反映未来的变化)吗?您不是在寻找视图(始终查看表中的当前数据)吗?
-
嗨 Bandi-T - 这是一个好主意,实际上考虑一下也许我不需要合并它们。但是,数据是相当静态的,只会每月左右批量更新。
-
好吧,如果你选择一个表,DBMS 只计算一次,不会跟随源数据的变化。如果您选择一个视图,DBMS 会在每次有人查询该视图时进行计算,但它始终包含新数据。如果您必须对这些合并数据执行许多查询(我猜您查询的频率会比更新发生的频率高),那么选择使用表可能非常值得。
-
@Bandi-T - 是的,它的查询频率要比更新频率高得多。但是数据集很大,所以可能会为自己节省一些痛苦并使用视图模型
-
是的,我会感觉更好 - 请参阅下面的 TMN 答案。当然,表格的宽度和高度也会影响到这一点,以及您将有什么样的查询。然后我们甚至没有开始考虑添加索引来加快查询速度。
标签: mysql join merge create-table