Ik heb een tabel opstellingen waarin onder andere wedstrijd (wid) voorkomt en spelers (persid). Nu wil ik een query waaruit blijkt hoe vaak twee spelers met elkaar hebben gespeeld.
vb.
wid persid
200 1
200 2
200 3
201 1
201 3
201 4
202 1
202 2
202 5

Nu wil ik graag een query die laat zien hoe vaak speler 1 met anderen heeft samengespeeld.

select count(wid) as totaal from opstelling where persid=1
laat zien dat speler 1 3 keer heeft gespeeld.

select wid,count(wid) as totaal,persid from opstelling where (persid=1 or persid=2) group by wid having totaal>1
laat de wedstrijden zien die speler 1 en 2 samen hebben gespeeld.

Maar ik zoek dus de query die het volgende resultaat laat zien;
persid 1 – persid 2 – 2 keer
persid 1 – persid 3 – 2 keer
persid 1 – persid 4 – 1 keer
persid 1 – persid 5 – 1 keer

SELECT
  o2.persid AS tegenspeler,
  COUNT(o2.wid) AS aantal
FROM
  opstellingen o1
INNER JOIN
  opstellingen o2
    ON o2.wid = o1.wid
WHERE
  o1.persid = 1
GROUP BY
  o2.persid

Uit de losse pols, maar volgens mij moet je het in deze richting zoeken. Een JOIN op dezelfde tabel dus...
Super! Dat is precies wat ik zoek. En dat niet alleen . . zoek ook nog zo'n losse pols :-)

[size=xsmall]Toevoeging op 13/05/2011 18:44:15:[/size]

Super! Dat is precies wat ik zoek. En dat niet alleen . . zoek ook nog zo'n losse pols :-)

Reageren