gpt4 book ai didi

mysql - 将每个用户的所有发件人和发件人邮件分组

转载 作者:可可西里 更新时间:2023-11-01 08:05:42 24 4
gpt4 key购买 nike

我想知道是否有人可以帮助我。我正在开发一个私有(private)消息中心,该中心将使用户能够通过前端向彼此发送 PM。收件箱运行良好,但我想添加一个页面,您可以在其中单击用户名,然后您可以看到与该用户和当前登录用户之间发送和接收的所有消息。

例如:

用户 1
消息A
留言B
消息C
消息D

用户 2
消息A
留言B
消息C

用户 3
消息A
留言B
消息C
消息D
消息E

在我的数据库中,我有一个包含所有用户的表:

id | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key

我有一张包含消息信息的表格:

id | parent_id | from_user | to_user | send_date | last_date | message_title | message_contents | status | to_del | from_del

表1中的用户id对应于表2中的parent_id(回复形式的嵌套消息)和from_user和to_user。

使用下一个查询(我在 Stackoverflow 上找到基础后使用的查询),我能够回显 from_user 列的结果,但是我想回显从用户发送和向用户发送的所有消息:

global $wpdb;
$result = $wpdb->get_results( "SELECT table1.id, table1.user_nicename, table2.id,
table2.from_user, table2.message_title FROM table1
INNER JOIN table2 ON table1.id=table2.from_user
GROUP BY user_nicename" );

foreach($result as $row)
{
echo $row->user_nicename." <br> ".$row->message_title."<br>";
}
?>

任何人都可以阐明它并指出我正确的方向吗?我想我需要使用类似 INNER JOIN 的东西来将 to_user 添加到查询中,但是我有点迷失了它。

如果您需要更多信息,请告诉我。第一次在这里寻求帮助,所以我不知道我是否提供了足够的信息:)

非常感谢您的关注和帮助!

最佳答案

您可以使用 group_concat 函数来执行此操作。

Select table1.id, table1.user_nicename, 
group_concat(table2.message_title SEPARATOR "|") as Message
FROM table1
LEFT JOIN table2
ON table1.id=table2.parent_id
GROUP BY table2.parent_id

您将通过 | 连接不同的消息使用 PHP array explode 来分隔消息。

关于mysql - 将每个用户的所有发件人和发件人邮件分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721493/

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