我有一张桌子,里面有一堆零件.这些部件有制造商提供的ID和序列号.部件被组装在一起来构建部件,而部件的组装顺序很重要.当完成此装配时,将创建一个新部件,该部件将进入一个新表,该表具有一个数组,该数组指向第一个按ID顺序排列的表.换句话说:
表"process.parts":
id | serial_no |
---|---|
1 | PART_A01 |
2 | PART_A02 |
3 | PART_A03 |
4 | PART_A04 |
5 | PART_A05 |
6 | PART_A06 |
表"process.assemblies":
id | assembly_order |
---|---|
1 | {3, 6, 1} |
2 | {5, 2, 4} |
我需要从表2中 Select 一个程序集并按程序集的顺序显示它.换句话说,组件1的 Select 应显示:
output |
---|
PART_A03 |
PART_A06 |
PART_A01 |
我用来 Select 部件的SQL命令如下所示:
SELECT id, serial_no
FROM process.parts
WHERE id IN (SELECT unnest(assembly_order) FROM process.assemblies WHERE id = 1);
此脚本不保留数组中的顺序.有没有办法修改它以循环访问数组的元素以保持顺序?