gpt4 book ai didi

php - Ajax聊天系统-使用查询从表中选择两次

转载 作者:行者123 更新时间:2023-11-30 00:41:37 25 4
gpt4 key购买 nike

我正在尝试构建一个ajax聊天系统。基本上我有 2 个表,users 表和 pm(私有(private)消息)表。我正在加入这些表。

如何在一个查询中从用户表中获取第一个人和第二个人(接收者和发送者)的所有信息,以便我可以在正确的时间排序所有聊天?

我尝试使用普通联接来完成此操作,但我意识到它仅从用户表发送一组数据。是否可以两次加入同一张表?

我已经尝试过这个:

SELECT pm.id, pm.message, pm.reciever, pm.sender, pm.senttime, pm.rread, 
u.username, u.name, u.surname, u.fullname, u.profile, u2.username, u2.name,
u2.surname, u2.fullname, u2.profile
FROM pm, users u, users u2
WHERE (pm.reciever = 1 AND pm.sender = 2) OR (pm.reciever = 2 AND pm.sender = 1)

但它返回的是倍数。

最佳答案

您必须比较不同表中的 ID:

SELECT pm.id, pm.message, pm.reciever, pm.sender, pm.senttime, pm.rread, s.username, s.name, s.surname, s.fullname, s.profile, r.username, r.name, r.surname, r.fullname, r.profile 
FROM pm, users s, users r
WHERE (r.id = pm.reciever) AND (s.id = pm.sender) AND ((r.id = 1 AND s.id = 2) OR (r.id = 2 AND s.id = 1))

关于php - Ajax聊天系统-使用查询从表中选择两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21730808/

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