mysql - 如何获取用户聊天信息

标签 mysql database database-design

我有 2 个表,其中一个是“Chat”,只有列 id 我有第二个是 CREATE TABLE聊天用户 ( ID int(10) UNSIGNED NOT NULL, 用户 ID varchar(45) NOT NULL, 聊天ID int(11) DEFAULT NULL, 创建于 timestamp NULL DEFAULT NULL, 更新于timestamp NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我所做的是在聊天表中创建一行,然后在聊天用户中存储 2 个 roes,其中包含两个用户 ID 和一个聊天 ID

现在我如何拥有 2 个用户 ID,如何到达那里聊天 ID?

最佳答案

此答案假设您已经知道这两个用户的 ID,并且您想要查找这两个用户参与的所有聊天。一种方法是按 chat_id 聚合 chat_user 表,然后断言给定的聊天涉及两个用户:

SELECT chat_id
FROM chat_user
GROUP BY chat_id
HAVING MIN(user_id) = <user_id_1> AND MAX(user_id) = <user_id_2>;
--                         |___________________________|__ replace with actual values

关于mysql - 如何获取用户聊天信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508620/

相关文章:

java - 无法使用 ResultSet 创建 ArrayList

MYSQL不同列对应具有不同标题的一行中的相应人员值

mysql - 数据库规范化设计问题 : 2 tables sharing almost the same information

mysql - 数据库设计 - 数据库中的存储选择

mysql - 数据库设计 : Foreign keys dilemma

javascript - 通过 JavaScript 调用带有 php 变量的 php 脚本

java - 在 mule studio 上使用 java 组件从数据库检索数据

database - 如何计算 Amazon RDS 上的小时/月使用量和定价?

java - Spring -MongoDB

database-design - 将继承的对象存储在数据库中