Я пытался написать sql-запрос, чтобы получить статистику от bugzilla. Вот запрос
select bugs.bug_id AS bug_id,
COUNT(map_pingpong.bug_when) AS re_open,
MAX(map_closetime.bug_when) AS closed_date
from bugs
LEFT JOIN bugs_activity AS map_pingpong
ON ((map_pingpong.bug_id = bugs.bug_id
and map_pingpong.fieldid=15))
LEFT JOIN bugs_activity AS map_closetime
ON ((bugs.bug_id = map_closetime.bug_id
and map_closetime.fieldid=8
and bugs.bug_status = 'CLOSED' ))
where (bugs.assigned_to = 480)
GROUP BY bugs.bug_id
ORDER BY bug_id;
Итак, запрос должен возвращать две вещи
1) Количество событий 2) Дата события
Поэтому, когда я разбиваю запрос на два разных запроса, они возвращают правильные значения. Если я запускаю его, как указано выше, значения счетчика неверны (хотя дата верна). Я не должен запускать два соединения на одной таблице? или count не должен быть там, когда вы используете join ?
count()
будет подсчитывать строки в произведении. - person Barmar   schedule 23.10.2014COUNT(DISTINCT map_pingpong.some_unique_column)
- person Barmar   schedule 23.10.2014