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

时间:2014-02-12 14:31:14

标签: php mysql sql ajax

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

如何在一个查询中获取person 1和person 2(接收者和发送者)的users表中的所有信息,以便我可以按正确的时间订购所有聊天内容?

我尝试使用普通连接完成此操作,但我意识到它只从users表发送一组数据。可以两次加入同一个表吗?

我试过这个:

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)

但它正在返回倍数。

1 个答案:

答案 0 :(得分:0)

您必须比较不同表格中的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))