首页 > 解决方案 > 将一个不相关的行附加到 MySQL 查询

问题描述

我有一个庞大的 SQL 查询,它返回一个非常大的结果表。

如何使用简单的不同查询将一个条目附加到该结果,以跳过对数据库的额外访问?

例如对于列[a,b,c,d,e,f]说我得到 3 行的结果,我希望只为 when 添加一行e = 0,并带来它的f值,在这个例子中它是9,忽略其他列上的所有其他许多条件,并留下其余的行NULL,结果应该是这样的:

|a|b|c|d|e|f|
|1|2|3|4|5|6|
|6|5|4|3|2|1|
|1|3|4|2|5|6|
|N|N|N|N|0|9|

标签: pythonmysqlsqlunion

解决方案


在使用数据的应用程序中这样做可能更有意义。

在 MySQL 中,您可以使用union all将所需的记录添加到结果集中(您似乎知道这一点,因为您用 标记了您的问题union)。

所以像:

select -- your massive query here
union all
select null, null, null, null, 0, null

union all无论海量查询返回什么,都会生成记录。如果发生更改,即大规模查询也可能生成相同的记录,并且您希望避免重复,则可以使用union(但这意味着您的 RDMBS 需要做更多的工作,这将需要在两个unioned 结果集中搜索重复项)。


推荐阅读