Oversigt over antal vundne og tabte kampe
Jeg har følgende struktur i min database:CREATE TABLE `kampdeltagere` (
`rk_id` int(11) NOT NULL auto_increment,
`rk_kamp_id` int(11) NOT NULL default '0',
`rk_person_id` int(11) NOT NULL default '0',
`rk_type` enum('Taber','Vinder') NOT NULL default 'Taber',
UNIQUE KEY `rk_id` (`rk_id`)
) TYPE=MyISAM ;
Et eksempel på noget af det data, der ligger i den tabel: I kamp nummer 7, var personen 14 vinder, og 13, 21 og 52 tabere. I kamp 6 var person 52 vinder og 21 taber. Det ser således ud
rk_id, rk_kamp_id, rk_person_id, rk_type
1 7 14 Vinder
2 7 21 Taber
3 7 13 Taber
4 7 52 Taber
5 6 52 Vinder
7 6 21 Taber
Mit ønsker er at lave et udtræk der giver mig nogle rækker, der ser således ud (givet det ovenstående data). Altså en opsummering for hver person, hvor mange vundne og hvor mange tabte kampe han har:
[person_id], [vundne_kampe], [tabte_kampe]
14 1 0
21 0 2
13 0 1
52 1 1
Det bedste jeg har kunnet komme op med indtil videre er:
SELECT `rk_person_id`, COUNT(*) AS vundne FROM `kampdeltagere` WHERE `rk_type`='Vinder' GROUP BY `rk_person_id`
UNION
SELECT `rk_person_id`, COUNT(*) AS tabte FROM `kampdeltagere` WHERE `rk_type`='Taber' GROUP BY `rk_person_id`
Det giver bare et lidt uventet resultat:
[person_id] [vundne] [tabte]
14 1 -
52 1 -
21 2 -
13 1 -
52 1 -
Som sådan er tallene korrekte nok (14 og 52 har hver vundet én kamp, og 21 tabt 2, 13 og 52 tabt 1 hver). Men i stedet for at være samlede som mit ønske-resultat ovenover kommer det på en mystisk måde "efter hinanden"...
Jeg håber forklaring giver mening... Ellers så bare skriv tilbage, så skal jeg prøve at forklare bedre.