sql - Postgresql 迭代数组字段并将记录用于另一个查询

标签 sql arrays postgresql many-to-many

我正在尝试迭代数组字段,以便将每个记录用作 用于查询并最终连接所有结果的参数,但我需要帮助才能获取它。

我有一个表,其中有一个名为fleets的数组字段,它可以有一个或多个值,即。 {1,2,3} 我需要迭代每个值以获取属于这些车队的所有车辆。

通过子查询,我得到了 3 行,其中的值分别为 123

SELECT * FROM vehicles WHERE fleet_fk=(
   SELECT unnest(fleets) FROM auth_user WHERE id=4)

我使用的是 PostgreSQL 9.4。

最佳答案

如果您的查询出现错误:用作表达式的子查询返回的多行,则意味着您应该使用 ANY :

SELECT * FROM vehicles 
WHERE fleet_fk = ANY(
   SELECT unnest(fleets) FROM auth_user WHERE id=4)

关于sql - Postgresql 迭代数组字段并将记录用于另一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902259/

相关文章:

mysql - 奇怪的 SQL 语法

STR(<number>,<m>,<n>) FoxPro 命令的 SQL 命令

java - 将数组传递给排序方法以查找其执行时间

arrays - 访问数组时使用分隔符

postgresql - 当我想按日期过滤时,ISO8601 是 PostgreSQL jsonb 的最佳日期格式吗?

sql - 仅将表用于多重继承是一种不好的做法吗?

Postgresql,如果存在具有某些唯一值的行则更新,否则插入

java - 如何在Java持久性查询语言中使用正则表达式?

java - 创建 Oracle 钱包以在 Java 应用程序中隐藏数据库凭证

ruby-on-rails - ruby group_by 对象?