Добрый вечер. Подскажите как выбрать совпадения uid > 1
SELECT u.uid, tt.ticketid as result FROM tickets_tickets tt
LEFT JOIN users AS u ON tt.useruid=u.uid
WHERE tt.categoryid IN (5, 13, 17)
AND tt.creationdate >= '2020-09-01 00:00:00'
AND tt.creationdate <= '2020-10-31 00:00:00'
В итоге получаю например:
uid | ticketid
12345 | 12
54321 | 11
12345 | 22
53454 | 16
Вот надо выбрать только те где uid > 1 раза попадается - то есть выбрать только те uid, что повторяются более одного раза и подсчитать их к-во (уже сгрупированных)
А ticketid вообще важен? А то в решениях сверху он рандомно возвращаться будет.
И если данные в таблицах консистентные, а ticketid не нужен, делай проще:
SELECT tt.userid
FROM tickets_tickets tt
WHERE <условия>
GROUP BY tt.userid
HAVING COUNT(DISTINCT tt.ticketid) > 1;
Нафиг лишний join. Distinct в group by тоже потенциально не нужен.