slt

思路1

SELECT c.Name
FROM Candidate c JOIN Vote v
ON c.id=v.CandidateId
GROUP BY v.CandidateId
ORDER BY COUNT(v.CandidateId) DESC
LIMIT 1;

思路2

首先在Vote表中用GROUP BY选出最多的人的ID

    SELECT CandidateId
    FROM Vote
    GROUP BY CandidateId
    ORDER BY COUNT(*) DESC LIMIT 1

再用Cadidate表和这个表联结

SELECT c.Name
FROM Candidate c JOIN
(
    SELECT CandidateId
    FROM Vote
    GROUP BY CandidateId
    ORDER BY COUNT(*) DESC LIMIT 1
) AS t ON c.id=t.CandidateId;

Last updated