2010-09-22 6 views
2

Есть две таблицы:Как присоединиться к моим «клиентам» и «сообщениям»?

Clients 
___________ 
idClient int 
login varchar 

Messages 
___________ 
idMessage int 
dateWakeup datetime 
.... other fields 

мне нужно для каждого клиента, чтобы подсчитать количество записей в таблице сообщений в заданном диапазоне времени. Я попробовал что-то вроде этого:

SELECT c.login, count(m.idMessage) FROM Clients c, Messages m 
where 
    m.idClient=c.idClient and m.dateWakeup>'2010-09-01 00:00:01' 
    and m.dateWakeup<'2010-10-01 00:00:01'; 

Он не работает.

ответ

2

При использовании COUNT(...), вы должны GROUP BY результаты:

SELECT c.login, count(m.idMessage) 
FROM Clients c, Messages m 
where m.idClient=c.idClient 
and m.dateWakeup>'2010-09-01 00:00:01' 
and m.dateWakeup<'2010-10-01 00:00:01' 
GROUP BY c.login 
+0

Спасибо! удалось! – Zoitc2014

0

попробовать это

SELECT c.login, count(m.idMessage) FROM Clients as c 
INNER JOIN Messages as m 
ON m.idClient=c.idClient 
WHERE m.dateWakeup BETWEEN '2010-09-01 00:00:01' and '2010-10-01 00:00:01' 
0
SELECT c.login, count(m.idMessage) FROM Clients c, Messages m 
where m.idClient=c.idClient and m.dateWakeup>'2010-09-01 00:00:01' and 
m.dateWakeup<'2010-10-01 00:00:01' GROUP BY c.login; 

агрегатные функции, такие как COUNT() требует GROUP BY ...