SELECT
COUNT(*)
FROM users U
JOIN messages M ON
M.sent_id = U.ID
WHERE
U.ID = 1
Şimdi ben burada users tablosunu seçip, messages'e join oluyorum. Bu ID adresine ait mesajların sayısını çekiyorum. Her şey iyi güzel.
Ama sorun şurada, messages tablosunda time sütunu var bu mesajların en az birinin time yani gönderilme zamanı kullanıcının son aktivitesinden yüksek olmalı ki bu tüm mesajların sayısı ekrana basılsın. Yani eğer son aktiviteden sonra eğer mesaj gelmişse ekrana tüm mesajların sayısı basılsın.
Örnek;
messages sütununda "time" sütunu var, users tablosunda son_aktivite
Kendim Hallettim
Başkalarına lazım olursa;
SELECT
COUNT(*)
FROM users U
JOIN messages M ON
M.sent_id = U.ID
WHERE
U.ID = 1
HAVING
COUNT(IF(M.time > U.last_notify_time, 1, NULL)) > 0