sql - 将 SELECT 查询中的列彼此相邻添加
问题描述
我必须查询返回下表:
foo | bar
----+----
1 | 2
5 | 6
和
baz | qux
----+----
3 | 4
7 | 8
我想将它们结合起来返回下表
foo | bar | baz | qux
----+-----+-----+----
1 | 2 | 3 | 4
5 | 6 | 7 | 8
除了他们在各自SELECT
陈述之后的顺序之外,他们没有加入任何条件。这可能是一个可笑的简单问题,但我似乎无法弄清楚如何用搜索词来返回我想要的东西
解决方案
您可以使用row_number()函数添加该条件并加入这些结果:
SELECT T1.foo, T1.bar, T2.baz, T2.qux
FROM
(SELECT table1.*, row_number() OVER () as rnum1 FROM (query1) table1) T1
JOIN (SELECT table2.*, row_number() OVER () as rnum2 FROM (query2) table2) T2
ON T1.rnum1 = t2.rnum2
根据您的情况,可以有LEFT JOIN
或RIGHT JOIN
代替。
推荐阅读
- javascript - 如何在 Laravel 中没有打印预览和对话框的情况下进行静默打印?
- php - PHP:显示从数据库中检索到的数据使用 DB::query (Silverstripe CMS)
- scala - 为什么编译器不推断依赖类型?
- wordpress - 有没有办法将用户元数据复制到其他表?
- django - 如何使用 pymongo 访问用 mongodb 编写的 system.views?
- java - 使用 Apache Camel 和 ActiveMQ 时如何处理系统崩溃
- mule - 如何在 ESB 中使用 db 连接器检索数据
- java - 优化服务器端实验跟踪事件
- karate - 如何通过空手道中的示例表在路径中传递响应变量
- mysql - 搜索 URL 模式并使用 REGEX 在 MySql 上替换它