MySQL jest moją kulą u nogi, albo mam dziś jakieś zaćmienie umysłu.
Query poniżej to subselect innego query, w którym próbuję policzyć czas.
SELECT
u.id AS uId,
u.first_name AS uName,
ut.tag_id AS tId,
TIMESTAMPDIFF(SECOND, t.start, t.end) AS totalTime
FROM time AS t
INNER JOIN user AS u ON t.user_id = u.id
INNER JOIN user_tag AS ut ON ut.user_id = u.id
GROUP by u.id, ut.tag_id, t.start, t.end
...
...
Tabela time
zawiera 30 rekordów, każde start i end to godzina różnicy, zatem TIMESTAMPDIFF
zwróci 3600 sekund.
Tabela user_tag
zawiera 2 rekordy.
Problem jest taki, że kiedy robię INNER JOIN user_tag
, podwaja mi on rzecz jasna wyniki, ale mam problem z policzeniem sekund. Zamiast policzyć 30 rekordów po godzine, czyli 30 godzin, zlicza mi 60 rekordów, zatem 60 godzin. How to fix it :)