Table "tblvotes"
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
candidateid | int(11) | NO | MUL | NULL | |
districtid | int(11) | NO | NULL | ||
daterecorded | datetime | NO | current_timestamp() |
Table "tblcandidate":
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
voterid | int(11) | NO | MUL | NULL | |
partyid | int(11) | NO | MUL | NULL | |
candidatepositionid | int(11) | NO | MUL | NULL |
Table "tbldistricts":
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
district_short | varchar(8) | NO | NULL | ||
district_name | varchar(100) | NO | NULL | ||
district_aun | varchar(10) | NO | NULL | ||
district_propVal | tinyint(4) | NO | 1 |
Table "tblvoterlist":
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
idno | varchar(15) | YES | NULL | ||
lastname | varchar(30) | NO | NULL | ||
firstname | varchar(30) | NO | NULL | ||
middlename | varchar(30) | NO | NULL | ||
districtid | int(5) | YES | MUL | NULL | |
image | varchar(30) | NO | NULL | ||
votingcode | varchar(15) | YES | UNI | NULL | |
votestatus | char(1) | YES | NULL | ||
yearlevelid | int(12) | YES | MUL | NULL |
SELECT concat_ws(",", tvl.lastname, tvl.firstname) as candidate, td.district_name as district, count(tv.candidateid)
FROM tblvotes tv
JOIN tblcandidate tc on tv.candidateid = tc.id
JOIN tbldistricts td on tv.districtid = td.id
JOIN tblvoterlist tvl on tc.voterid = tvl.id
Also tried to group by tv.districtid and I am not sure where the COUNT should be.
unfortunately, I really am not understanding how use the keys to get the desired result.
As an example the desired result is:
Candidate1 | Canddiate2 | Candidate3 | Candidate4 | |
---|---|---|---|---|
District1 | 5 | 2 | 1 | 0 |
District2 | 0 | 4 | 2 | 1 |
District3 | 6 | 2 | 3 | 2 |
I hope this makes sense.