Я пытаюсь написать sql-запрос, чтобы получить некоторую статистику из bugzilla. Вот запросИспользование count в mysql join
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) Дата события происходит
Так что, когда я разбить запрос в два разных запроса возвращают правильные значения. Если я запустил его, как указано выше, значения счетчика неверны (дата правильная, хотя). Я не должен запускать два соединения на одном столе? или счет не должен быть там, когда вы используете соединение?
Вы не можете запустить SQL в фрагменте кода, это только для Javascript. – Barmar
Когда вы запускаете два объединения, вы получаете декартово произведение обеих таблиц, а 'count()' будет считать строки в продукте. – Barmar
Возможно, вам удастся его решить, используя 'COUNT (DISTINCT map_pingpong.some_unique_column)' – Barmar