[英]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.