我有2个表,其中一个是“聊天”,仅在列ID上有
我的第二个是
CREATE TABLE
聊天用户(
id int(10) UNSIGNED NOT NULL,
user_id varchar(45) NOT NULL,
聊天ID int(11) DEFAULT NULL,
created_at timestamp NULL DEFAULT NULL,
updated_at timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我要做的是在聊天表中创建一行,然后在两个用户ID和一个聊天ID的聊天用户中存储2个子项
现在我有2个用户ID,我怎么到达那里,聊天ID?
答案 0 :(得分:0)
此答案假设您已经知道两个用户的ID,并且您想查找两个用户都参与了的所有聊天。一种方法是按chat_user
汇总chat_id
表,然后断言给定的聊天涉及两个用户:
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
答案 1 :(得分:0)
您应该
SELECT DISCTINCT(chat_id) from CHAT_USERS where user_id IN (someuser_id1, someuser_id2)
获取2个用户的chat_id。