Когда ваши JOINed-таблицы имеют отношения «один ко многим» и вы выбираете только ограниченное количество столбцов, вы не можете понять, почему вы получаете так много результатов. Поэтому вместо того, чтобы использовать DISTINCT, я предлагаю использовать предложение GROUP BY, чтобы указать столбцы, которые вам действительно интересны. Если вы также добавите COUNT (*) в ваш SELECT, вы можете продолжать настраивать свой запрос до тех пор, пока не будет подсчитано количество записей. 1 для каждой строки возвращается. Попробуйте это:
$ticketIdQuery = pg_query($db, "SELECT ticket.assignee_id, ticket.subject, COUNT(*) FROM ticket INNER JOIN ticket_assignee_mapping ON ticket.assignee_id=ticket_assignee_mapping.assignee_id WHERE status_id = $firstLevelId GROUP BY ticket.assignee_id, ticket.subject");
Если у вас все еще есть вопросы, пожалуйста, опубликуйте определения таблиц для ticket и ticket_assignee_mapping.