如何从“TABLE1 AND TABLE2”创建 SELECT 查询

Posted

技术标签:

【中文标题】如何从“TABLE1 AND TABLE2”创建 SELECT 查询【英文标题】:How to create a SELECT query FROM "TABLE1 AND TABLE2" 【发布时间】:2015-06-15 10:45:14 【问题描述】:

我有一个 PostgreSQL 数据库,只有 SELECT 权限。在这个数据库中,有两个表具有相同的结构(相同的列)。

我需要在每个表中编写几个查询并连接结果。

有没有办法编写这样的查询?

SELECT
  field1,
  field2,
  field3
FROM
  table1
AND
  table2
WHERE
  condition;

Select from 2 tables. Query = table1 OR table1 + table2 没有答案,这不是我的问题。

【问题讨论】:

你想要输出什么?因此,您可以编写查询。如果您必须从多个表中获取数据,请使用 JOINS.. 你可以使用'union all' 我的输出应该是TABLE1 中的所有行和TABLE2 中满足WHERE 请求的所有行。 @MukeshKalgude,我马上试试。 这是列,而不是字段... 【参考方案1】:

UNION ALL

SELECT field1, field2, field3
FROM table1
WHERE condition
UNION ALL
SELECT field1, field2, field3
FROM table2
WHERE condition;

或者简化你的 WHERE 条件

SELECT * FROM
(   SELECT field1, field2, field3
    FROM table1
    UNION ALL
    SELECT field1, field2, field3
    FROM table2
)
WHERE condition;

【讨论】:

第二种解决方案简化了WHERE 条件,但第一种更高效,对吗? @GiacomoAlessandroni 这取决于你的数据,两个都试试【参考方案2】:

你可以使用联合:

SELECT
  field1,
  field2,
  field3
FROM
  table1

UNION

SELECT
  field1,
  field2,
  field3
FROM
  table2

【讨论】:

请注意,UNION 删除了重复的行,OP 没有提及任何内容。 (只要没有明确要求删除重复项,我总是使用 UNION ALL。)【参考方案3】:
SELECT * FROM
(   SELECT field1, field2, field3
    FROM table1
    UNION ALL
    SELECT field1, field2, field3
    FROM table2
)
WHERE condition;

【讨论】:

以上是关于如何从“TABLE1 AND TABLE2”创建 SELECT 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何从电影创建动画 .gif?

H2:如何从 Oracle 视图创建链接表?

如何从任何数据库表创建 PySpark RDD?

如何从函数对象创建本机协程?

如何从查询参数创建路由

如何从表单创建 json?