As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。
已关闭8年。
我收到了这个MySQL面试问题,这使我不具备任职的资格。
我去面试,被问到一个我无法回答的问题,我丢了工作。
他们问过。
我们有两个表,第一个表(主表)是带有字段的
第二个表(子表)是带有字段的
每次投票时,都会将候选者的候选人候选者放在 child 中。
问题是您如何宣布获胜者?
请帮我怎么做。
我尝试了很多,但找不到逻辑。
在sqlfiddle上看到它。
已关闭8年。
我收到了这个MySQL面试问题,这使我不具备任职的资格。
我去面试,被问到一个我无法回答的问题,我丢了工作。
他们问过。
我们有两个表,第一个表(主表)是带有字段的
CANDIDATES
:candidate_id
(primary_key)candidate_name
第二个表(子表)是带有字段的
CANDIDATE_VOTES
:v_id
(主键)candidate_id
(外键)每次投票时,都会将候选者的候选人候选者放在 child 中。
CANDIDATE
:=================================
|candidate_id | candidate_Name |
|-------------------------------|
| 1 | abc |
|-------------------------------|
| 2 | xyz |
|-------------------------------|
| 3 | etc |
|-------------------------------|
CANDIDATE VOTES
==========================
| votes_id | candidate_id |
|-------------------------|
| 1 | 1 |
|-------------------------|
| 2 | 1 |
|-------------------------|
| 3 | 2 |
|-------------------------|
问题是您如何宣布获胜者?
请帮我怎么做。
我尝试了很多,但找不到逻辑。
最佳答案
您应该退回所有获得最多票数的候选人:
SELECT candidates.*
FROM candidates JOIN candidate_votes USING (candidate_id)
GROUP BY candidate_id
HAVING COUNT(*) = (
SELECT COUNT(*)
FROM candidate_votes
GROUP BY candidate_id
ORDER BY votes DESC
LIMIT 1
)
在sqlfiddle上看到它。
关于MySQL面试,这使我失去了这份工作的资格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12176374/
10-11 03:06