У меня есть две таблицы пользователи и голосов и некоторые пользователи могут иметь тот же unq_id
GROUP BY с использованием другой таблицы
Я пытаюсь выбрать все отличиеunq_id
от пользователей и сортировать их по votes
от голосов таблица.
Но результаты не так, как я ожидал, голоса дублируются. Вы можете увидеть в ниже изображения
SELECT DISTINCT u.unq_id, COUNT(v.id) AS count_votes
FROM users u
INNER JOIN votes v
ON u.unq_id = v.unq_id
WHERE u.unq_id <> ''
GROUP BY u.unq_id;
SQLFiddle: http://sqlfiddle.com/#!9/e0bb35/1
Ожидаемые результаты:
3fyx6 - 3
9kx9mq - 1
Общее GROUP BY правило гласит: Если GROUP BY пункте указано, каждая ссылка на столбец в списке SELECT, должны либо определить столбец группировки или быть аргументом функции набора! – jarlh
Ваше отношение к таблице выглядит странно. У вас должен быть уникальный идентификатор для присоединения к которому у вас нет в настоящее время. Это не сработает. –
Обычно нет необходимости делать SELECT DISTINCT, когда GROUP BY. – jarlh