sql - 如何为 SQL 执行相当于双循环附加的操作
问题描述
我在具有 2 列的 SQL(Presto,也是 sql 的新手)中设置此表,col1
这两col2
列是从其他两个现有表table1
和table2
. 为简单起见,假设col1
fromtable1
有 3 个值,col2
fromtable2
有 2 个值。我希望我要创建的表看起来像这样(我们称之为table3
,我将用它col1.1
来表示该 col 中的第一个值,依此类推):
col1 | col 2
--------------------
col1.1 | col2.1
col1.1 | col2.2
col1.2 | col2.1
col1.2 | col2.2
col1.3 | col2.1
col1.3 | col2.2
我知道如何使用 Pandas 在 Python 中执行此操作,就像我在这里所做的那样(虚拟示例):
a = [1, 2, 3]
b = ['sam', 'john']
combined_lst = []
for i in a:
for j in b:
combined_lst.append({'col1': i, 'col2': j})
table = pandas.io.json.json_normalize(combined_lst)
print(table)
表输出:
col1 col2
0 1 sam
1 1 john
2 2 sam
3 2 john
4 3 sam
5 3 john
基本上它应该是上面那个表格的格式。我已经考虑UNION ALL
过反复尝试,但我不太确定我是否走在正确的轨道上
解决方案
我想你想要一个cross join
:
select row_number() over (order by t1.col1, t2.col2) as id, t1.col1, t2.col2
from table1 t1 cross join
table2 t2;
row_number()
万一第一列应该是数据的一部分。
推荐阅读
- php - 如何从 php 中使用日期范围获取的字段中添加所有结果?
- r - R - 删除的行
- elasticsearch - Logstash 输出 dosent 在使用 systemctl 时发布日志
- spring - 在 Spring Batch + Spring Boot 中使用 SQL 脚本清空目标数据库表
- php - 添加新索引时循环停止 [php-laravel]
- python - 如何在 C# 中获取多维数组切片,numpy 样式?
- docker - 卸载 docker localhost 后从 nginx 中的 docker 重定向到 localhost/tutorial
- c++ - std::vector::iterator 可以合法地成为指针吗
- python - 来自numpy table-ish数组的numpy滚动windows
- php - Laravel 中间件类调用捕获