sql - 对表的每一行逐一进行特定查询
问题描述
假设我有一张桌子:
| key1 | key2 | value |
+------+------+-------+
| 1 | 1 | 1337 |
| 1 | 2 | 6545 |
| 2 | 1 | 213 |
| 3 | 1 | 131 |
我想做的是逐行遍历这个表,然后在进一步的查询中使用键两个值(所有其他表都包含这两个键+其他数据的唯一组合)
我如何在 SQL 中做这种事情?
编辑:我想从第 1 行 (1,1) 中提取 key1, key2 然后对其进行查询,这将产生一个数字。
然后我会移动到第二行,一个相同的查询会再次产生一个数字。
然后将所有这些数字插入到预先准备好的视图中。
EDIT2:我需要遍历它,因为我的数据库的具体用途。
它是一个包含扇区的行星数据库(键是这两个的 ID)。所有这些区域都包含资源、炮塔和城墙。我在帖子中的表格是扇区表的示例,其值是敌军。
资源表、炮塔等包含这两个键,因此它们链接到并且仅链接到特定扇区。
我需要逐行进行,以便我可以使用此键从我的表中仅选择特定的资源/炮塔/墙,将它们汇总,然后从我的扇区表中的值中减去它们。然后将生成的数字插入到预先准备好的视图中(同样,插入到与我的两个键组合匹配的行中)
解决方案
这听起来像是一个相关的子查询或横向连接。你没有那么多解释,但像这样:
select t1.*, t2.*
from table1 t1 cross join lateral
(select . . .
from table2 t2 . . .
where t2.key1 = t1.key1 and t2.key2 = t1.key2
) t2
您不清楚第二个查询是什么样的。该where
子句称为相关子句。它将子查询连接到外部查询。并非严格需要相关子句才能使其正常工作。
外部查询的列可以在子查询的其他地方使用。我只是假设一个平等条件将两者联系起来(缺乏其他信息)。
推荐阅读
- android - Android Room 数据库 ViewModel 不反映同步插入的数据
- python - Django:向管理通用视图添加简单按钮
- javascript - 如何在 jquery 中动态获取 UL 和 LI 值
- json - JSONDecodeError:期望值第 1 行第 1 列(字符 0)
- xpath - 使用机器人框架查找具有“选定”属性的选项标签
- python - 将 matplotlib 饼图标签旋转 90 度
- dpdk - Mellanox ConnectX-3 不支持 DPDK 数据包分段?
- permutation - 通过汉明权重枚举整数,模位移
- asp.net - Asp.Net Identity 锁定结束日期默认时间未设置
- python - 反转轮廓和扩展轮廓之间的像素颜色