我正在尝试构建一个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)
但它正在返回倍数。
答案 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))