Jump to content

[SOLVED] MySQL usage: Combining 2 SELECTS


jasonfrog

Recommended Posts

There is a list of candidates and a list of voters. Each voter is allowed to vote upto 5 times. The first vote allocates 5 points, the second vote allocated 4 points, the third 3 points, the fouth 2 point and fifth 1 point.

 

Each time some submits a vote an entry get made in the following table called nominations.

 

tablename: nominations
cid     int(20) 	
vid	  int(20)
points  tinyint(4)

 

e.g.

cid 	vid 	points
794 	693 	3
581 	693 	4
850 	693 	5
581 	514 	5
850 	514 	4
584 	514 	3
794 	514 	2
1981 	514 	1
850 	1164 	5
581 	1164 	4
584 	1164 	3
581 	573 	5
584 	573 	4
794 	573 	3

 

I would like to construct a query that lists the total points for each candidate (cid), but to only include points that have been allocated by a voter (vid) that has voted 3 (or more) times.

 

 

The following will produce a list of voters and the amount of times they have voted.

 

SELECT vid, count(*) as v FROM nominations WHERE 1 GROUP BY vid HAVING v > 2

 

 

The following will produce a list of candidate ids and the total amount of points they have received.

 

SELECT cid, SUM(points) AS p FROM nominations WHERE GROUP BY cid ORDER BY p DESC

 

 

How can I combine these two queries so that the result is a list of the total points for each candidate but only including points given by voters that have voted 3 (or more) times.

Link to comment
Share on other sites

select cid, sum(points) from nominations n1 where 3<=(select count(*) from nominations n2 where n2.cid=n1.vid )  group by cid

 

is above query useful?

 

many thanks. i had to change 'n2.cid=n1.vid' to 'n2.vid=n1.vid', but that works. huge thanks =)

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.