首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >许多对postgresql的查询

许多对postgresql的查询
EN

Stack Overflow用户
提问于 2017-04-02 15:00:26
回答 1查看 1.1K关注 0票数 0

我的Postgresql DB中有一个基本的多对多关系。

表-用户

身份证名..。

桌聊

id名

桌面聊天器

id userId chatId

我想得到所有的聊天(实际上,只有一个这样的聊天),这将只有用户,由他们的ids定义。

例如,我有id 1的用户、id 2的用户和id 3的用户,如何才能得到只包含这些用户的聊天,而不是更多的聊天。这意味着,只与这些用户中的某个人聊天将不包括在结果中。只有包含这些用户的聊天

我明白,肯定已经有这样的问题了,但我没能找到。

EN

回答 1

Stack Overflow用户

发布于 2017-04-02 15:04:41

下面是一种使用group byhaving的方法

代码语言:javascript
运行
复制
select cu.chatid
from chatuser cu
group by cu.chatid
having sum(case when cu.userid not in (1, 2, 3) then 1 else 0 end) = 0;

这将计算不在列表中的用户数量。= 0chatId没有任何一个。

在Postgres中,可以将其缩短为:

代码语言:javascript
运行
复制
select cu.chatid
from chatuser cu
group by cu.chatid
having sum( (cu.userid not in (1, 2, 3))::int) = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43169837

复制
相关文章

相似问题

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