首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在postgres中内部连接数组类型?

如何在postgres中内部连接数组类型?
EN

Stack Overflow用户
提问于 2021-03-25 12:05:42
回答 2查看 373关注 0票数 0

包含列的employees表:

id (pk) BIGINT,名称文本,电子邮件文本,work_locations BIGINT[]。

work_locations列包含位置表ids。

有列的位置表:

id (pk) BIGINT,lat小数点(12,9),长小数(12,9)。

我想要一个类似的结果

代码语言:javascript
复制
id  name  email            lat,      long   
1   name  email@email.com  23.345   54.3678

我无法连接work_locations和ids上的两个表。

如何连接这两张桌子?

EN

回答 2

Stack Overflow用户

发布于 2021-03-25 12:12:56

您可以使用ANY运算符加入:

代码语言:javascript
复制
select e.*, 
       l.lat, 
       l.long
from employees e
  join locations l on l.id = any(e.work_locations)
order by e.id;

通常,我建议而不是将外键存储在类似的数组中。您应该考虑使用employeeslocations之间具有多到多个链接表的适当规范化模型。

票数 2
EN

Stack Overflow用户

发布于 2021-03-25 12:09:52

你可以unnest()

代码语言:javascript
复制
select e.*, l.*
from employees e cross join lateral
     unnest(work_locations) wl(work_location) left join
     locations l
     on wl.work_location = l.id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66799131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档