如何解决数组中的PostgreSQL整数不可合并
我想在整数数组中存在整数的条件下执行FULL OUTER JOIN。
查询看起来像这样:
SELECT thing FROM table1 t1
FULL OUTER JOIN table2 t2
ON t1.id = ANY(t2.array_of_ids)
但是出现以下错误:
FULL JOIN仅在可合并合并或可哈希合并的合并条件下受支持
有没有办法使此条件可合并合并?
解决方法
嗯。 。 。这样行吗?
SELECT thing
FROM table1 t1 FULL OUTER JOIN
(table2 t2 CROSS JOIN
UNNEST(t2.array_of_ids) t2_id
)
ON t1.id = t2_id;
这个问题是它将乘以行数。那么,如何构造FULL JOIN
呢?
SELECT . . .
FROM table1 t1 LEFT JOIN
(table2 t2 CROSS JOIN
UNNEST(t2.array_of_ids) t2_id
)
ON t1.id = t2_id
UNION ALL
SELECT . . .
FROM table2 t2
WHERE NOT EXISTS (SELECT 1
FROM UNNEST(t2.array_of_ids) t2_id JOIN
table1 t1
ON t2_id = t1.id
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。