Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询具有相同字段标题的查询-MS Access_Sql_Ms Access_Join - Fatal编程技术网

Sql 查询具有相同字段标题的查询-MS Access

Sql 查询具有相同字段标题的查询-MS Access,sql,ms-access,join,Sql,Ms Access,Join,我有几个查询(20+)都返回以下三列: Building | Room | Other 所有这些都是文本字段。我想把所有这些问题结合起来;所以我想看看查询作为一个整体返回什么 例如,如果我有一个查询SELECT Building,Room,Other FROM tblOne WHERE Room=10,以及SELECT Building,Room,Other FROM tblOne WHERE Building=20,我如何将这两个查询合并为一个查询?显然,这是一个非常简单的示例,我的实际查询

我有几个查询(20+)都返回以下三列:

Building | Room | Other
所有这些都是文本字段。我想把所有这些问题结合起来;所以我想看看查询作为一个整体返回什么

例如,如果我有一个查询
SELECT Building,Room,Other FROM tblOne WHERE Room=10
,以及
SELECT Building,Room,Other FROM tblOne WHERE Building=20
,我如何将这两个查询合并为一个查询?显然,这是一个非常简单的示例,我的实际查询要复杂得多,因此将它们作为一个查询编写是不可行的

我希望上面的示例能够输出:

Building | Room | Other
```````````````````````
20       |  1   | Some Stuff
20       | 10   | Some More
5        | 10   | Some Other
15       | 10   | Some Extra
20       |  5   | Some Text

我尝试过的所有方法都出现了一个错误,即“建筑物、房间和其他可以引用多个表”(也就是说,它不想将它们合并到一个标题下)。修复此问题的SQL语法是什么?

在UNION ALL和UNION的帮助下,将这两个查询组合起来,如下所示

  SELECT Building, Room, Other FROM tblOne WHERE Room=10 
  UNION ALL
  SELECT Building, Room, Other FROM tblOne WHERE Building=20
问题1

问题2

通知

UNION运算符用于组合两个或多个SELECT语句的结果集

UNION中的每个SELECT语句必须具有相同的列数。列还必须具有类似的数据类型。此外,每个SELECT语句中的列的顺序必须相同


默认情况下,UNION运算符仅选择不同的值。要允许重复值,请使用UNION ALL。

。。。哇!好的,脸掌在那个上面。非常感谢,这就是我需要的。我想我是在寻找一种速记方法,所以我甚至没有想到这一点。多次从[MyQueryName]编写SELECT*是一项任务,但也许我可以使用一些VBA将其自动化。之所以选择最佳,是因为您提供了更完整的解释。在本例中,它们不是;但是,我有更复杂的查询,这最终将用于创建按建筑物或房间排序的大型报告,该报告将显示该建筑物/房间所有可用查询的所有结果;我正在使用VBA编写报告的源代码,因此我需要一种方法来添加所有这些查询;到目前为止,使用或将所有这些复杂的查询重新写入一个查询中比编写联合要容易得多。
SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION ALL
SELECT Building, Room, Other FROM tblOne WHERE Building=20
SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION
SELECT Building, Room, Other FROM tblOne WHERE Building=20