У меня есть 3 таблицы в базе данных MySQL
chat
user1, user2, chat_key
chat_seen
msgid, userid, viewed
users
username, status, key
Поэтому я пытаюсь отобразить чаты, упорядочивающие их пользователями онлайн, а затем увиденные сообщения. Но это не работает. это то, что у меня до сих пор, я только получил его для работы с чатом и пользователями, я не знаю, как добавить заказ по чату видно
("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
Других решений пока нет …