如何将多表单列独立查询结果合并为多列结构?
合并多表单列查询结果为多列的实现方案
我们需要从数据库抽取样本进行分析,目前针对每列执行独立查询(已知此操作不符合关系型数据库的常规用法,但因特定需求必须采用该方式读取数据)。由于查询数量达数千次,优化需求随之产生。
原独立查询示例
每个查询的格式如下:
SELECT col1 FROM Table1 WHERE <some conditions>;
对应的查询结果:
| col1 |
|---|
| content11 |
| content12 |
| ... |
另一例查询:
SELECT col2 FROM Table2 WHERE <some conditions>;
对应的查询结果:
| col2 |
|---|
| content21 |
| content22 |
| ... |
以此类推,直到执行SELECT coln FROM Tablen WHERE <some conditions>;这类查询。
尝试UNION ALL的问题
我们尝试使用UNION ALL合并查询:
SELECT col1 FROM Table1 WHERE <some conditions> UNION ALL SELECT col2 FROM Table2 WHERE <some conditions>
但该查询会将所有结果合并至同一列,不符合需求:
| col1 |
|---|
| content11 |
| content12 |
| ... |
| content21 |
| content22 |
| ... |
需求
是否可以编写一个查询,得到如下格式的结果?
| col1 | col2 | col3 | ... | col n |
|---|---|---|---|---|
| content11 | content21 | ... | ... | |
| content12 | content22 | ... | ... | |
| ... | ... | ... | ... |
尽管此操作不符合关系型数据库的常规用法,但因各类原因我们仍需合并多个查询的结果。核心目标是减少查询次数(原查询达数千次),以降低数据库负载,同时减少性能与时间成本。我们有特定需求,希望得到可行的实现方案。
内容的提问来源于stack exchange,提问作者cguzel
相关产品推荐
相关产品推荐

