首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取表1记录,当表之间有多到多的关系时,多表2记录是常见的

获取表1记录,当表之间有多到多的关系时,多表2记录是常见的
EN

Stack Overflow用户
提问于 2018-09-15 17:19:58
回答 2查看 28关注 0票数 0

我有三个表,聊天,用户和chat_user,聊天可以有多个用户,用户可以有多个聊天。我想要得到的聊天是所有给定的用户is共同。

聊天 (id)

用户 (id)

chat_user (id,chat_id,user_id)

我想得到属于用户1和5或多个用户ids的聊天。

编辑

我使用的是Laravel框架,所以如果有一种方法通过父表(用户、聊天)获得结果会更好。

但任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-15 17:38:47

您可能需要加入表chats (包含您想要的信息的表)和表chat_user (包含聊天和用户的id ),以便在联接的表上应用where子句。

在拉勒维尔,我不知道。

代码语言:javascript
复制
SELECT c.*
FROM `chats` c
JOIN `chat_user` cu
    ON c.id = cu.chat_id
WHERE cu.chat_id NOT IN (
    SELECT cuu.chat_id
    FROM chat_user cuu
    WHERE cuu.user_id NOT IN (1, 5))
票数 1
EN

Stack Overflow用户

发布于 2018-09-15 17:56:32

我猜userId在这里将是一个输入参数吗?请尝试以下查询:

代码语言:javascript
复制
SELECT
*
from
chats
WHERE
id in (
SELECT
  chat_id
from
  chat_user
WHERE
  user_id = '1'
  OR user_id = '5'
group by
  chat_id
having
  count(*) = 2
)

count(*)=2将只确保那些同时存在用户15的聊天。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52347096

复制
相关文章

相似问题

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