首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用UNNEST

结合使用UNNEST
EN

Stack Overflow用户
提问于 2013-04-17 08:14:43
回答 1查看 27.9K关注 0票数 9

我希望能够在一个复杂的unnest()查询中使用PostgreSQL中的JOIN函数,这个查询有很多JOIN

代码语言:javascript
复制
SELECT 9 as keyword_id, COUNT(DISTINCT mentions.id) as total, tags.parent_id as tag_id
FROM mentions
INNER JOIN taggings ON taggings.mention_id = mentions.id
INNER JOIN tags ON tags.id = taggings.tag_id
WHERE mentions.taglist && ARRAY[9] AND mentions.search_id = 3
GROUP BY tags.parent_id

我想在这里消除taggings表,因为我的mentions表有一个名为taglist整数数组字段,该字段由mentions的所有链接标记I组成。

我试过以下几点:

代码语言:javascript
复制
SELECT 9 as keyword_id, COUNT(DISTINCT mentions.id) as total, tags.parent_id as tag_id 
FROM mentions 
INNER JOIN tags ON tags.id IN (SELECT unnest(taglist))
WHERE mentions.taglist && ARRAY[9] AND mentions.search_id = 3 
GROUP BY tags.parent_id 

这是可行的,但所带来的结果与第一个查询不同。

因此,我想要做的是在一个SELECT unnest(taglist)查询中使用JOIN的结果来补偿taggings表。

我怎么能这么做?

更新: taglist与相应的标记ids列表相同。

EN

回答 1

Stack Overflow用户

发布于 2013-04-17 09:41:10

像这样的事情应该有效:

代码语言:javascript
复制
...
tags t INNER JOIN
(SELECT UNNEST(taglist) as idd) a ON t.id = a.idd
...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16054925

复制
相关文章

相似问题

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