我有一个数据库(我无法更改),其中一个表如下所示:
| ID:integer | fk:integer | next:[integer array] |
--------------------------------------------------
| 1 | 711 | {4} |
| 2 | 712 | {6} |
| 3 | 788 | |
| 4 | 799 | {7} |
--------------------------------------------------
现在我尝试定义一个查询,它作为第一行的数据ID = 1
和下一行,所有数据ID
都在整数数组next
({4}
)中,以便我的查询返回:
| ID:integer | fk:integer | next:[integer array] |
--------------------------------------------------
| 1 | 711 | {4} |
| 4 | 799 | {7} |
--------------------------------------------------
但随后停止,因此它只会产生具有指定元素ID
的next
元素。
我试过了。像这样,但我无法让它工作:
SELECT * FROM tablenm WHERE ID = ANY(SELECT next FROM tablenm WHERE ID = 1) AND ID = 1
我使用的当前解决方法是首先使用此查询:
SELECT * FROM tablenm WHERE ID = 1
然后对于 Array 中的每个元素,我以ID
编程方式在循环中使用 s 运行相同的查询,但这看起来像一个肮脏的 hack,我希望有一个使用 1 个 SQL 语句的解决方案。