在Access中合并两个表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Access中合并两个表?相关的知识,希望对你有一定的参考价值。
我有两个表,我需要合并不同的数据。它们确实有相似之处,例如:订单号,名称,类型或产品。但他们也有单独的数据,如:订单日期和雕刻。
我会在Access中对合并表执行两个单独的追加查询吗?或者一个追加查询?或者只是将数据分开?
我是Access的新手,并试图找到解决此问题的最佳方法。
将两个表合并为一个表完全违背了使用数据库的目的,并且最好在此时使用excel。您希望尽可能沿逻辑行拆分数据,以便您可以找到X先生为特定产品所做的所有订单。在这种情况下,您将需要为客户,订单,雕刻等设置单独的表格。
从设计的角度来看,最佳实践是将每个表共有的字段放在第三个“主”表中,然后创建从该表到现有表的关系,并删除已传输到主表的数据(除了主键,必须与主表通用)。
要创建主表,请使用“生成表”查询根据其中一个表生成主表,然后使用追加查询根据另一个表添加主表中可能不常见的任何产品。最后,删除每个表的查询将消除两个原始表中的冗余数据。
但是,我强烈建议您使用Microsoft的教程并下载NorthWind示例数据库,以便了解正确结构化数据库的外观。初学者的访问学习曲线非常陡峭,并且具有良好构建的示例数据库几乎是必需的。
备份您的数据库并使用它直到它结果正确。在知道自己在做什么之前,不要误以为使用实时数据。
由于您在任一表上都有类似字段,因此请使用联合查询从两个表中获取订单号字段。就像是:
SELECT tbl_Delivery_Details.OrderNo
FROM tbl_Delivery_Details
GROUP BY tbl_Delivery_Details.OrderNo
UNION
SELECT tbl_Delivery_Header.[Order number]
FROM tbl_Delivery_Header
GROUP BY tbl_Delivery_Header.[Order number];
这将从交货详细信息表和交货表头表中获取订单号,并将它们合并到一个列表中,每个订单号只有一个实例。保存查询。
然后,您可以在新查询中使用此查询。将2个表引入此查询并插入您需要的任一表中的字段。
当用户向表中添加记录时,它们将在下次运行时添加到联合选择查询中。
PB
这取决于你想做什么。假设你有表A
(有50条记录)和B
(有75条)记录,两个表都有一个类似的列叫做OrderID
。
追加行:如果要通过组合A
中的记录(行)和B
中的记录(行)来创建总共125条记录的表,请运行以下两个查询:
查询1:
SELECT A.ORDER_NUMBER, A.TEXT_FIELD1 as DATA INTO C
FROM A;
查询2:
INSERT INTO C ( ORDER_NUMBER, DATA )
SELECT B.ORDER_NUMBER, B.TEXT_FIELD2
FROM B;
追加列:如果要创建一个包含75条记录的表,您要将A
中的列附加到B
中的列,请运行以下查询:
SELECT B.ORDER_NUMBER, A.TEXT_FIELD1, B.TEXT_FIELD2 INTO C
FROM A RIGHT JOIN B ON A.ORDER_NUMBER = B.ORDER_NUMBER;
...以类似的方式,您可以通过运行以下查询将B
中的列追加到新表A
中C
中的列,总共有50条记录:
SELECT A.ORDER_NUMBER, A.TEXT_FIELD1, B.TEXT_FIELD2 INTO C
FROM A LEFT JOIN B ON A.ORDER_NUMBER = B.ORDER_NUMBER;
以上是关于在Access中合并两个表?的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Access 查询 - 将两个查询合并为一个