gpt4 book ai didi

mysql - 寻找用户聊天的 SQL 查询

转载 作者:搜寻专家 更新时间:2023-10-30 23:36:46 25 4
gpt4 key购买 nike

我正在处理用户聊天,但我还没有找到正确的 SQL 查询来获取所有信息messages 列,只获取用户x和用户y的所有发送的成员列和所有接收的成员列。

我不想在消息中创建像这样的行:receiving_mem_id 和 sending_mem_id,因为在“房间”中还有另一种与某些用户聊天的方式。

这是我的数据库: enter image description here

你能帮我一些忙吗?

这是我尝试使用的查询:

Select  me.mem_id
, me.mem_nickname
, me.isConnected
, me.isBreeder
, m.mess_id
, m.mess_text
, m.mess_date
From PSU.Member As me
, message As m
, send As s
Where me.mem_id = s.mem_id
And s.mess_id = m.mess_id
And s.mess_id In (Select re.mess_id
From message As m
, PSU.Member As me
, receive As re
Where m.mess_id = re.mess_id
And re.mem_id = (Select mem_id
From PSU.Member
Where mem_id = :mem_id
));

但我遇到的问题是任何成员都可以看到发送给目标成员的消息。

最佳答案

编辑:根据您的评论,我修改了查询。如果您需要从 member 表的某些字段上过滤已发送的消息,请添加连接和过滤数据。

select me.mem_id
, me.mem_nickname
, me.isConnected
, me.isBreeder
, m.mess_id
, m.mess_text
, m.mess_date
from member me
join receive r on me.mem_id = r.mem_id
join message m on r.mess_id = m.mess_id
where me.mem_id = :mem_id
and m.mess_id in (
select mess_id
from send s
where mem_id = :another_mem_id
)
order by m.mess_date desc

关于mysql - 寻找用户聊天的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com