【发布时间】:2020-08-14 01:59:22
【问题描述】:
是否可以在单个 SQL 语句中执行类似“foreach”的查询?我的具体实现是使用 SQLite,所以建议使用兼容语法的建议。
示例:假设我们有一个类似于以下的表格:
simulation_id | sprite_id | time | x | y
1 1 0.0 0.0 0.0
1 2 0.0 5.5 1.6
1 1 1.0 0.1 0.0
1 2 1.0 5.5 1.5
1 3 1.0 9.9 4.1
1 1 2.0 ...
1 2 2.0
1 3 2.0
2 1 0.0
2 1 1.0
2 1 2.0
2 2 2.0
2 1 3.0
2 2 3.0
2 3 3.0
...
从该表中得出的关键结论是,并非所有“sprite_id”条目都可以在 t=0.0 时实例化。
我想在每个模拟中出现sprite_id=3 的第一个实例中检索所有精灵的位置。因此,我的理想查询将检索 sprite 1、2 和 3 在 t=1.0 时的位置(simulation_id=1)和 t=3.0 时的 Simulation_id=2。
我相信查询会是这样的:
SELECT simulation_id, sprite_id, time, x, y
FROM locations WHERE time = (SELECT MIN(time) FROM locations WHERE sprite_id = 3)
...但是我需要对表中的每个 Simulation_id 进行此运行;这甚至可以在单个 SQL 查询中实现吗?
【问题讨论】: