繁体   English   中英

mysql连接无法正常工作

[英]mysql join not working correctly

我在mysql数据库中有3个表

chat
user1, user2, chat_key

chat_seen
msgid, userid, viewed

users
username, status, key

因此,我试图显示聊天,以按用户在线对其排序,然后显示消息。 但是它不起作用。 这是我到目前为止的内容,iv仅使其能够与聊天和用户一起使用,我不知道如何通过看到的聊天来添加订单

("SELECT u.random, u.status, c.chat_key, c.seen, u.username
                                     FROM chat c, users u
                                     WHERE CASE 
                                     WHEN c.user1 = ?
                                     THEN c.user2 = u.random
                                     WHEN c.user2 = ?
                                     THEN c.user1= u.random
                                     END 
                                     AND (
                                     c.user1 = ?
                                     OR c.user2 = ?)
                                     ORDER BY u.status DESC LIMIT 50");

所以结果应该是

username - online - (2 messages)
username - online - (1 message)

username - offline - (20 messages)
username - offline - (2 messages)
username - offline - (o messages)

此刻我有

username - online - (0 messages)
username - online - (0 messages)
username - offline - (2messages)
username - offline - 20 messages)

请尝试以下查询:

("SELECT 
u.random, 
u.status, 
c.chat_key, 
c.seen, 
u.username

FROM chat c, users u

WHERE 
(c.user1 = ? AND c.user2 = u.random)
OR
 (c.user2 = ? AND c.user1 = u.random)
AND 
(c.user1 = ? OR c.user2 = ?)

ORDER BY u.status DESC LIMIT 50");

让我知道它是否有效。 :D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM