gpt4 book ai didi

php - 拉取消息线程如何从数据库中列出数据?

转载 作者:行者123 更新时间:2023-11-29 00:36:08 26 4
gpt4 key购买 nike

这是我的 MySQL 数据库结构:

收件人(id、converstation_id、user_id)

对话(id,user_start)

消息(id, user_id, message, conversation_id, time)

我想做的是提取由特定用户发起的所有对话ID,他是其中一个对话的接收者。并按最后一条消息排序。

我该怎么做?

最佳答案

以下查询将起作用。您必须将 REQUESTED_USER_ID 替换为有效的用户 ID。请注意 SQL 中的 UNION 语句,它连接了两个子查询的结果。然后将 UNION 的结果包装在另一个 SELECT 中,以按开始时间实现排序。

SELECT
conversation_id
FROM (
SELECT
c.id AS conversation_id,
m.time AS start
FROM Conversations c
JOIN Messages m ON m.conversation_id = c.id
WHERE c.user_start = REQUESTED_USER_ID
UNION
SELECT
c.id AS conversation_id,
m.time AS start
FROM Conversations c
JOIN Recipents r ON c.id = r.user_id
JOIN Messages m ON m.conversation_id = c.id
WHERE r.user_id = REQUESTED_USER_ID
) result

ORDER BY start DESC;

关于php - 拉取消息线程如何从数据库中列出数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225521/

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