Я работаю над тхатной комнатой, и все сообщения хранятся в одной и той же таблице «сообщение». Что я хочу, это перечислить отдельных пользователей и отобразить новый порядок сообщений по новому сообщению.MYSQL - подсчет с условием
Вот мой MySql Таблица «сообщение»:
Пусть говорят я псевдо «ОЛИВЕР»!
id | lu | view_date | pseudo | destinataire | message | date |
------+--------+-------------+----------+-----------------+------------+-------------+
7181 | 0 | 0 | OLIVER | WILLIAM | HELLO | 1418214808 +
7183 | 0 | 0 | WILLIAM | OLIVER | HELLO | 1418214808 +
7184 | 0 | 0 | OLIVER | WILLIAM | HELLO | 1418214808 +
7184 | 1 | 1418214808 | OLIVER | MIKE | HELLO | 1418214808 +
7101 | 1 | 1418214808 | MIKE | OLIVER | HELLO | 1418214808 +
7186 | 0 | 0 | SUPERMAN | BATMAN | HELLO | 1418214808 +
7187 | 0 | 0 | DONALD | MICKEY | HELLO | 1418214808 +
7188 | 0 | 0 | GREG | OLIVER | HELLO | 1418214808 +
7189 | 0 | 0 | GREG | WILLIAM | HELLO | 1418214808 +
7189 | 0 | 0 | FUNKY | OLIVER | HELLO | 1418214808 +
7189 | 1 | 1418214808 | BERNARD | OLIVER | HELLO | 1418214808 +
7189 | 1 | 1418214808 | OLIVER | BERNARD | HELLO | 1418214808 +
7188 | 0 | 0 | GREG | OLIVER | HELLO | 1418214808 +
Результаты shouled отображения только записи, относящиеся к псевдо 'ОЛИВЕР' для Exemple:
pseudo | total new Messages
---------+-------------------+
GREG | 2 <-- 3 entry but only 2 new message lu field = 0
WILLIAM | 1 <-- 2 entry but only 1 new message lu field = 0
FUNKY | 1 <-- 1 entry lu field = 0
MIKE | 0 <-- 1 entry lu field = 0
BERNARD | 0 <-- 1 entry lu field = 0
# New (непрочитанные) сообщения являются ручки с полем лу и значение = "0"
# старых (READ) являются сообщениями ручки с полем л и значением = «1»
Моего фактический запрос подсчитывает все сообщения для всех отдельных пользователей, связанных с «ОЛИВЕРОМ», как я могу рассчитывать всю новую MESSA ges для всех отдельных пользователей?
SELECT data, SUM(cnt) AS cnt
FROM (
(
SELECT destinataire AS data, COUNT(id) AS cnt
FROM message
WHERE pseudo = '".$_SESSION['pseudo']."'
GROUP BY data
)
UNION ALL
(
SELECT pseudo AS data, COUNT(id) AS cnt
FROM message
WHERE destinataire = '".$_SESSION['pseudo']."'
GROUP BY data
)
) pd
GROUP BY data
ORDER BY cnt DESC
Я думаю, что счет «Уильяма» должен быть 2. –