Выберите имя из таблицы кандидатов, если он имеет наибольшее количество записей в таблице голосов - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть две таблицы в базе данных. Таблица1: кандидаты

id | name
--------
1  | John
2  | Eva
3  | Siera

Таблица2: голоса

| candidateid |
--------
|   1   |
|   1   |
|   1   |
|   1   |
|   2   |
|   2   |
|   3   |

Пожалуйста, кто-нибудь поможет мне, мой вопрос о том, как я могу выбрать имя человекаот кандидатов, у которых есть больше записей в таблице голосов .?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018
  • Выполните простое СОЕДИНЕНИЕ между двумя таблицами.
  • Получите общее количество голосов за кандидата, используя функцию COUNT, по группировке идентификатора кандидата.
  • Порядок результата по итогуголосов в порядке убывания и с использованием LIMIT 1 для получения данных о человеке с наибольшим количеством голосов.

Попробуйте выполнить следующее:

SELECT c.id, 
       c.name, 
       COUNT(*) AS total_votes 
FROM candidates AS c 
JOIN votes AS v ON v.candidateid = c.id 
GROUP BY c.id 
ORDER BY total_votes DESC LIMIT 1
0 голосов
/ 22 сентября 2018

В ваших данных выборки нет voteId.Вы, кажется, хотите:

SELECT CandidateId, count(*)
FROM votes
GROUP by CandidateId;

Вы можете использовать JOIN, чтобы ввести имя из другой таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...