首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取两个用户之间的相互订阅

获取两个用户之间的相互订阅
EN

Stack Overflow用户
提问于 2012-02-13 17:07:06
回答 4查看 94关注 0票数 2

我有一个表,如下所示

代码语言:javascript
复制
id comm_id user_id ..

这将存储用户对社区的订阅。现在我想查询这个表,以便只获取2个用户之间相互的订阅(比如user_id: 2和9)。

给我sql查询表名: db_community_subscribers id,community_id,user_id

代码语言:javascript
复制
"20"      1         "2"
"28",  NULL         "2"
"31"   NULL,        "2"
"43",   4           "2"
"47     1             9
"57",   NULL,       "2"
"59",   "12",      "9"
"60     14          2
"62",  NULL         2

这些是用户2和9的订阅

我只想选择1和12,因为这些是常用的订阅

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-13 17:28:55

试试这个:

我认为这将会起作用:

代码语言:javascript
复制
SELECT Comm_ID
FROM tableNAme
WHERE  user_id IN (2,9)
GROUP BY Comm_ID
HAVING COUNT(Comm_ID) > 1

代码语言:javascript
复制
SELECT DISTINCT d.Comm_ID
FROM
    (SELECT Comm_ID
    FROM tableNAme
    WHERE user_id in (1,2)) d
GROUP BY d.Comm_ID
HAVING COUNT(d.Comm_ID) > 1
票数 3
EN

Stack Overflow用户

发布于 2012-02-13 17:20:55

请在下面尝试

代码语言:javascript
复制
  SELECT group_concat(distinct comm_id)
  FROM table 
  WHERE user_id in(2, 9)
  group by user_id  having count(id) >1

或者:

代码语言:javascript
复制
  SELECT distinct comm_id
  FROM table 
  WHERE user_id in(2, 9)
  group by user_id  having count(id) >1

请做必要的更改,让我知道如果你还想要什么。

票数 1
EN

Stack Overflow用户

发布于 2012-02-13 18:09:15

尝试:

代码语言:javascript
复制
select comm_id, group_concat(id) as subscription_ids
from subscriptions
where user_id in (2,9)
group by comm_id
having count(distinct user_id)=2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9257858

复制
相关文章

相似问题

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