gpt4 book ai didi

sql - 合并包含相同字段的数据库表

转载 作者:搜寻专家 更新时间:2023-10-30 23:48:14 25 4
gpt4 key购买 nike

这是此问题的后续问题:Planning a database describing a multi-versioned product (不需要阅读它来回答这个问题)。

回顾一下,我需要定义多个表来描述同一实体的多个版本,即打印作业日志条目。这些版本源于生产它们的不同打印机型号。问题是,所有这些不同的版本总是包含一些公共(public)字段,例如[打印的份数],无论打印机型号如何,以及其他特定型号(以及表格版本)所独有的。

我在 MS Access 中工作。

我目前倾向于每个版本都有一个表格的解决方案。为简单起见,假设只有两个打印机型号,因此有两个表,每个表都包含该型号产生的日志条目。在它们中都有一些相同的字段(相同的名称,相同的类型,相同的含义)。我必须运行的查询之一是从两个表中选择行(例如,选择 2014 年 6 月在任何打印机上运行的副本超过 10 份的所有条目)。

我的问题:如何编写这样的查询,以及如何定义这些表,以便数据库知道我们在谈论相同的 [CopiesPrinted] 字段?对这两个表(我们称它们为 PrinterLog1 和 PrinterLog2)的常规 SELECT 将返回另一个表,其中将有两个不同的列,[PrinterLog1.CopiesPrinted] 和 [PrinterLog2.CopiesPrinted]。需要做什么才能使结果表中只有一列 [CopiesPrinted],它将包含相应打印机日志表中的数据?换句话说,如何巧妙地将这两个表合并为一个表? “JOIN ... ON PL1.CP=PL2.CP”查询也无济于事,因为 [PrinterLog1.CopiesPrinted] 和 [PrinterLog2.CopiesPrinted] 的内容应该不同。

谢谢!

编辑 1:谢谢大家,UNION 似乎可以完成这项工作。但是,它似乎更改了某些字段的列类型。例如,它将 Yes/No(在源表中)更改为 Number(在结果表中),并将 -1 和 0 分别表示为 true 和 false。有办法解决这个问题吗?

此外,我似乎无法在 Web 上的任何地方找到 Access 的 SQL 数据类型列表。我所能找到的只是为 Access 用户准备的那些(是/否、货币等),而我需要的是 SQL 样式类型(VARCHAR、DECIMAL 等)。是否有用于 MS Access 的 SQL 样式类型列表?

最佳答案

您需要使用 UNION 语句。

例如:

SELECT CopiesPrinted, Blahblah FROM PrinterLog1 
UNION ALL
SELECT CopiesPrinted, Blahblah FROM PrinterLog2

更多阅读:

关于sql - 合并包含相同字段的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25053521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com