[MySQL] Weergeven pr's

Pagina: 1
Acties:

  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 15-05 20:44

BetuweKees

Flipje uit Tiel

Topicstarter
Heb een database met sportuitslagen, en zou graag doormiddel van MySQL een overzicht geven van pr's over gehele database en ook ook gebruikers niveau. Heb geprobeerd dit te doen doormiddel van een GROUP BY. Daarnaast een MIN(tijd) om alleen de snelste tijd boven te krijgen. Enige nadeel hiervan is dat die MIN() dus niet gelinkt is aan de andere velden, en er daardoor wel de snelste tijd wordt weergeven, maar voorzien van de verkeerde gegevens. Niet goed dus.
Heb al een zoektochtje door de mysql docs ondernomen, evenals een via google en dit forum, maar niet echt veel verhelderends aangetroffen.
Hoop dat iemand hier meer info voor me over heeft.
Query die ik momenteel gebruik is (gesimplificeerd):
code:
1
2
3
4
5
6
7
8
9
10
SELECT
    t1.voornaam, t3.afstand, t2.datum, MIN(t2.tijd)
FROM
    leden AS t1, tijd_overzicht AS t2, tijd_afstand AS t3
WHERE
    t1.member_id = t2.member_id AND t2.afstand_id = t3.afstand_id
GROUP BY
    t2.afstand_id
ORDER BY
    t2.tijd ASC

Mijn dank is groot.. _/-\o_

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder


  • Glabbeek
  • Registratie: Februari 2001
  • Laatst online: 20-08 07:55

Glabbeek

Dat dus.

code:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
    t1.voornaam, t3.afstand, t2.datum, t2.tijd
FROM
    leden AS t1, tijd_overzicht AS t2, tijd_afstand AS t3
WHERE
    t1.member_id = t2.member_id 
    AND t2.afstand_id = t3.afstand_id
    AND t2.tijd IN (SELECT min(tijd) FROM t2)
GROUP BY
    t2.afstand_id
ORDER BY
    t2.tijd ASC


De toevoeging is dus:
AND t2.tijd IN (SELECT min(tijd) FROM t2)

Hierdoor is de resultset van de mainquery beperkt tot de t2's waarvan de tijd gelijk is aan de kleinste tijd die in de table t2 staat. Hierdoor zal je dus ook alleen de entries terugkrijgen met de kleinste t2.tijd.

En zo is het maar net.


Verwijderd

subquery's kan je toch niet gebruiken in MySQL?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Jij had het 'mysql' in de titel nog niet gelezen zeker? :)

De query van jou kan geloof ik niet eens herschreven worden naar een voor mysql te begrijpen join, dus ik vrees dat deze query niet in één uit te voeren is op mysql.
Opsplitsen en eerst de minimum tijden bepalen en dan pas de echte query uitvoeren zal het devies wel zijn.

  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 15-05 20:44

BetuweKees

Flipje uit Tiel

Topicstarter
Ok, na veel zoeken en proberen lijkt het erop dat ik iets gevonden heb :)
Komt ongeveer hier op neer:

code:
1
2
3
4
5
6
7
8
SELECT DISTINCT
    t1.*
FROM
    tijd_overzicht AS t1, 
    tijd_overzicht LEFT JOIN tijd_overzicht AS t2
    ON t1.afstand_id=t2.afstand_id AND t1.tijd>t2.tijd
WHERE
    t2.afstand_id IS NULL



Glabbeek: Dat van die subquery had ik ook al verzonnen, maar wordt door mySQL 3.23 dus niet onderstuend.. Maar goed, ik heb de oplossing gevonden! :)

[ Voor 20% gewijzigd door BetuweKees op 14-05-2003 13:33 ]

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder


  • Glabbeek
  • Registratie: Februari 2001
  • Laatst online: 20-08 07:55

Glabbeek

Dat dus.

BetuweKees schreef op 14 May 2003 @ 13:31:
Glabbeek: Dat van die subquery had ik ook al verzonnen, maar wordt door mySQL 3.23 dus niet onderstuend.. Maar goed, ik heb de oplossing gevonden! :)
Oeps, daar had ik inderdaad even niet aan gedacht. De laatste tijd ben ik te veel met andere DB´s bezig :)

En zo is het maar net.


  • Neman
  • Registratie: September 2000
  • Laatst online: 19-08 14:07

Neman

Een uit de lucht gegrepen naam

Glabbeek: Dat van die subquery had ik ook al verzonnen, maar wordt door mySQL 3.23 dus niet onderstuend.. Maar goed, ik heb de oplossing gevonden! :)
Misschien raadzaam om eens over te stappen op versie 4.0, die ondersteunt dat zonder problemen.

Verwijderd

Neman schreef op 14 May 2003 @ 15:39:
[...]

Misschien raadzaam om eens over te stappen op versie 4.0, die ondersteunt dat zonder problemen.
Correctie, het wordt pas ondersteund vanaf 4.1 en dat is op dit moment nog een alpha-release.

  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 15-05 20:44

BetuweKees

Flipje uit Tiel

Topicstarter
daarnaast.. ik kan zelf wel overstappen, maar dan moet ik vervolgens mijn webhost daar ook nog even van overtuigen, en dat zou wel eens lastig kunnen worden..

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder

Pagina: 1